blueloveTH il y a 3 ans
Parent
commit
5c1128d4ab
4 fichiers modifiés avec 188 ajouts et 7981 suppressions
  1. 94 3990
      plugins/flutter/src/pocketpy.h
  2. 1 1
      plugins/godot/godot-cpp
  3. 3 0
      scripts/moc.py
  4. 90 3990
      src/_bindings.h

+ 94 - 3990
plugins/flutter/src/pocketpy.h

@@ -1827,6 +1827,10 @@ private:
 #define UNREACHABLE() throw std::runtime_error( __FILE__ + std::string(":") + std::to_string(__LINE__) + " UNREACHABLE()!");
 #endif
 
+#ifdef __EMSCRIPTEN__
+#include <emscripten.h>
+#endif
+
 #define PK_VERSION "0.8.0"
 
 typedef int64_t i64;
@@ -6780,129 +6784,25 @@ void pkpy_vm_bind__f_int__int_int_int(VM* vm, const char* mod, const char* name,
     });
 }
 
-typedef i64 (*__f_int__int_int_float)(VM*, i64, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__int_int_float(VM* vm, const char* mod, const char* name, __f_int__int_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__int_int_str)(VM*, i64, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__int_int_str(VM* vm, const char* mod, const char* name, __f_int__int_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__int_int_bool)(VM*, i64, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_int__int_int_bool(VM* vm, const char* mod, const char* name, __f_int__int_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__int_float_int)(VM*, i64, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_int__int_float_int(VM* vm, const char* mod, const char* name, __f_int__int_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__int_float_float)(VM*, i64, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__int_float_float(VM* vm, const char* mod, const char* name, __f_int__int_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__int_float_str)(VM*, i64, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__int_float_str(VM* vm, const char* mod, const char* name, __f_int__int_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__int_float_bool)(VM*, i64, f64, bool);
+typedef i64 (*__f_int__float_float_float)(VM*, f64, f64, f64);
 __EXPORT
-void pkpy_vm_bind__f_int__int_float_bool(VM* vm, const char* mod, const char* name, __f_int__int_float_bool f) {
+void pkpy_vm_bind__f_int__float_float_float(VM* vm, const char* mod, const char* name, __f_int__float_float_float f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
+        f64 _0 = vm->PyFloat_AS_C(args[0]);
         f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__int_str_int)(VM*, i64, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_int__int_str_int(VM* vm, const char* mod, const char* name, __f_int__int_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__int_str_float)(VM*, i64, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__int_str_float(VM* vm, const char* mod, const char* name, __f_int__int_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
         f64 _2 = vm->PyFloat_AS_C(args[2]);
         i64 ret = f(vm, _0, _1, _2);
         return vm->PyInt(ret);
     });
 }
 
-typedef i64 (*__f_int__int_str_str)(VM*, i64, const char*, const char*);
+typedef i64 (*__f_int__str_str_str)(VM*, const char*, const char*, const char*);
 __EXPORT
-void pkpy_vm_bind__f_int__int_str_str(VM* vm, const char* mod, const char* name, __f_int__int_str_str f) {
+void pkpy_vm_bind__f_int__str_str_str(VM* vm, const char* mod, const char* name, __f_int__str_str_str f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
+        const char* _0 = vm->PyStr_AS_C(args[0]);
         const char* _1 = vm->PyStr_AS_C(args[1]);
         const char* _2 = vm->PyStr_AS_C(args[2]);
         i64 ret = f(vm, _0, _1, _2);
@@ -6910,4004 +6810,208 @@ void pkpy_vm_bind__f_int__int_str_str(VM* vm, const char* mod, const char* name,
     });
 }
 
-typedef i64 (*__f_int__int_str_bool)(VM*, i64, const char*, bool);
+typedef i64 (*__f_int__bool_bool_bool)(VM*, bool, bool, bool);
 __EXPORT
-void pkpy_vm_bind__f_int__int_str_bool(VM* vm, const char* mod, const char* name, __f_int__int_str_bool f) {
+void pkpy_vm_bind__f_int__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_int__bool_bool_bool f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
+        bool _0 = vm->PyBool_AS_C(args[0]);
+        bool _1 = vm->PyBool_AS_C(args[1]);
         bool _2 = vm->PyBool_AS_C(args[2]);
         i64 ret = f(vm, _0, _1, _2);
         return vm->PyInt(ret);
     });
 }
 
-typedef i64 (*__f_int__int_bool_int)(VM*, i64, bool, i64);
+typedef f64 (*__f_float__int_int_int)(VM*, i64, i64, i64);
 __EXPORT
-void pkpy_vm_bind__f_int__int_bool_int(VM* vm, const char* mod, const char* name, __f_int__int_bool_int f) {
+void pkpy_vm_bind__f_float__int_int_int(VM* vm, const char* mod, const char* name, __f_float__int_int_int f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
         i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
+        i64 _1 = vm->PyInt_AS_C(args[1]);
         i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        f64 ret = f(vm, _0, _1, _2);
+        return vm->PyFloat(ret);
     });
 }
 
-typedef i64 (*__f_int__int_bool_float)(VM*, i64, bool, f64);
+typedef f64 (*__f_float__float_float_float)(VM*, f64, f64, f64);
 __EXPORT
-void pkpy_vm_bind__f_int__int_bool_float(VM* vm, const char* mod, const char* name, __f_int__int_bool_float f) {
+void pkpy_vm_bind__f_float__float_float_float(VM* vm, const char* mod, const char* name, __f_float__float_float_float f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
+        f64 _0 = vm->PyFloat_AS_C(args[0]);
+        f64 _1 = vm->PyFloat_AS_C(args[1]);
         f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        f64 ret = f(vm, _0, _1, _2);
+        return vm->PyFloat(ret);
     });
 }
 
-typedef i64 (*__f_int__int_bool_str)(VM*, i64, bool, const char*);
+typedef f64 (*__f_float__str_str_str)(VM*, const char*, const char*, const char*);
 __EXPORT
-void pkpy_vm_bind__f_int__int_bool_str(VM* vm, const char* mod, const char* name, __f_int__int_bool_str f) {
+void pkpy_vm_bind__f_float__str_str_str(VM* vm, const char* mod, const char* name, __f_float__str_str_str f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
+        const char* _0 = vm->PyStr_AS_C(args[0]);
+        const char* _1 = vm->PyStr_AS_C(args[1]);
         const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        f64 ret = f(vm, _0, _1, _2);
+        return vm->PyFloat(ret);
     });
 }
 
-typedef i64 (*__f_int__int_bool_bool)(VM*, i64, bool, bool);
+typedef f64 (*__f_float__bool_bool_bool)(VM*, bool, bool, bool);
 __EXPORT
-void pkpy_vm_bind__f_int__int_bool_bool(VM* vm, const char* mod, const char* name, __f_int__int_bool_bool f) {
+void pkpy_vm_bind__f_float__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_float__bool_bool_bool f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
+        bool _0 = vm->PyBool_AS_C(args[0]);
         bool _1 = vm->PyBool_AS_C(args[1]);
         bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        f64 ret = f(vm, _0, _1, _2);
+        return vm->PyFloat(ret);
     });
 }
 
-typedef i64 (*__f_int__float_int_int)(VM*, f64, i64, i64);
+typedef const char* (*__f_str__int_int_int)(VM*, i64, i64, i64);
 __EXPORT
-void pkpy_vm_bind__f_int__float_int_int(VM* vm, const char* mod, const char* name, __f_int__float_int_int f) {
+void pkpy_vm_bind__f_str__int_int_int(VM* vm, const char* mod, const char* name, __f_str__int_int_int f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
+        i64 _0 = vm->PyInt_AS_C(args[0]);
         i64 _1 = vm->PyInt_AS_C(args[1]);
         i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        const char* ret = f(vm, _0, _1, _2);
+        return vm->PyStr(ret);
     });
 }
 
-typedef i64 (*__f_int__float_int_float)(VM*, f64, i64, f64);
+typedef const char* (*__f_str__float_float_float)(VM*, f64, f64, f64);
 __EXPORT
-void pkpy_vm_bind__f_int__float_int_float(VM* vm, const char* mod, const char* name, __f_int__float_int_float f) {
+void pkpy_vm_bind__f_str__float_float_float(VM* vm, const char* mod, const char* name, __f_str__float_float_float f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
         f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
+        f64 _1 = vm->PyFloat_AS_C(args[1]);
         f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        const char* ret = f(vm, _0, _1, _2);
+        return vm->PyStr(ret);
     });
 }
 
-typedef i64 (*__f_int__float_int_str)(VM*, f64, i64, const char*);
+typedef const char* (*__f_str__str_str_str)(VM*, const char*, const char*, const char*);
 __EXPORT
-void pkpy_vm_bind__f_int__float_int_str(VM* vm, const char* mod, const char* name, __f_int__float_int_str f) {
+void pkpy_vm_bind__f_str__str_str_str(VM* vm, const char* mod, const char* name, __f_str__str_str_str f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
+        const char* _0 = vm->PyStr_AS_C(args[0]);
+        const char* _1 = vm->PyStr_AS_C(args[1]);
         const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        const char* ret = f(vm, _0, _1, _2);
+        return vm->PyStr(ret);
     });
 }
 
-typedef i64 (*__f_int__float_int_bool)(VM*, f64, i64, bool);
+typedef const char* (*__f_str__bool_bool_bool)(VM*, bool, bool, bool);
 __EXPORT
-void pkpy_vm_bind__f_int__float_int_bool(VM* vm, const char* mod, const char* name, __f_int__float_int_bool f) {
+void pkpy_vm_bind__f_str__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_str__bool_bool_bool f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
+        bool _0 = vm->PyBool_AS_C(args[0]);
+        bool _1 = vm->PyBool_AS_C(args[1]);
         bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        const char* ret = f(vm, _0, _1, _2);
+        return vm->PyStr(ret);
     });
 }
 
-typedef i64 (*__f_int__float_float_int)(VM*, f64, f64, i64);
+typedef bool (*__f_bool__int_int_int)(VM*, i64, i64, i64);
 __EXPORT
-void pkpy_vm_bind__f_int__float_float_int(VM* vm, const char* mod, const char* name, __f_int__float_float_int f) {
+void pkpy_vm_bind__f_bool__int_int_int(VM* vm, const char* mod, const char* name, __f_bool__int_int_int f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
+        i64 _0 = vm->PyInt_AS_C(args[0]);
+        i64 _1 = vm->PyInt_AS_C(args[1]);
         i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        bool ret = f(vm, _0, _1, _2);
+        return vm->PyBool(ret);
     });
 }
 
-typedef i64 (*__f_int__float_float_float)(VM*, f64, f64, f64);
+typedef bool (*__f_bool__float_float_float)(VM*, f64, f64, f64);
 __EXPORT
-void pkpy_vm_bind__f_int__float_float_float(VM* vm, const char* mod, const char* name, __f_int__float_float_float f) {
+void pkpy_vm_bind__f_bool__float_float_float(VM* vm, const char* mod, const char* name, __f_bool__float_float_float f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
         f64 _0 = vm->PyFloat_AS_C(args[0]);
         f64 _1 = vm->PyFloat_AS_C(args[1]);
         f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        bool ret = f(vm, _0, _1, _2);
+        return vm->PyBool(ret);
     });
 }
 
-typedef i64 (*__f_int__float_float_str)(VM*, f64, f64, const char*);
+typedef bool (*__f_bool__str_str_str)(VM*, const char*, const char*, const char*);
 __EXPORT
-void pkpy_vm_bind__f_int__float_float_str(VM* vm, const char* mod, const char* name, __f_int__float_float_str f) {
+void pkpy_vm_bind__f_bool__str_str_str(VM* vm, const char* mod, const char* name, __f_bool__str_str_str f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
+        const char* _0 = vm->PyStr_AS_C(args[0]);
+        const char* _1 = vm->PyStr_AS_C(args[1]);
         const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        bool ret = f(vm, _0, _1, _2);
+        return vm->PyBool(ret);
     });
 }
 
-typedef i64 (*__f_int__float_float_bool)(VM*, f64, f64, bool);
+typedef bool (*__f_bool__bool_bool_bool)(VM*, bool, bool, bool);
 __EXPORT
-void pkpy_vm_bind__f_int__float_float_bool(VM* vm, const char* mod, const char* name, __f_int__float_float_bool f) {
+void pkpy_vm_bind__f_bool__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_bool__bool_bool_bool f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
+        bool _0 = vm->PyBool_AS_C(args[0]);
+        bool _1 = vm->PyBool_AS_C(args[1]);
         bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        bool ret = f(vm, _0, _1, _2);
+        return vm->PyBool(ret);
     });
 }
 
-typedef i64 (*__f_int__float_str_int)(VM*, f64, const char*, i64);
+typedef void (*__f_None__int_int_int)(VM*, i64, i64, i64);
 __EXPORT
-void pkpy_vm_bind__f_int__float_str_int(VM* vm, const char* mod, const char* name, __f_int__float_str_int f) {
+void pkpy_vm_bind__f_None__int_int_int(VM* vm, const char* mod, const char* name, __f_None__int_int_int f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
+        i64 _0 = vm->PyInt_AS_C(args[0]);
+        i64 _1 = vm->PyInt_AS_C(args[1]);
         i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        f(vm, _0, _1, _2);
+        return vm->None;
     });
 }
 
-typedef i64 (*__f_int__float_str_float)(VM*, f64, const char*, f64);
+typedef void (*__f_None__float_float_float)(VM*, f64, f64, f64);
 __EXPORT
-void pkpy_vm_bind__f_int__float_str_float(VM* vm, const char* mod, const char* name, __f_int__float_str_float f) {
+void pkpy_vm_bind__f_None__float_float_float(VM* vm, const char* mod, const char* name, __f_None__float_float_float f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
         f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
+        f64 _1 = vm->PyFloat_AS_C(args[1]);
         f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__float_str_str)(VM*, f64, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__float_str_str(VM* vm, const char* mod, const char* name, __f_int__float_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        f(vm, _0, _1, _2);
+        return vm->None;
     });
 }
 
-typedef i64 (*__f_int__float_str_bool)(VM*, f64, const char*, bool);
+typedef void (*__f_None__str_str_str)(VM*, const char*, const char*, const char*);
 __EXPORT
-void pkpy_vm_bind__f_int__float_str_bool(VM* vm, const char* mod, const char* name, __f_int__float_str_bool f) {
+void pkpy_vm_bind__f_None__str_str_str(VM* vm, const char* mod, const char* name, __f_None__str_str_str f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
+        const char* _0 = vm->PyStr_AS_C(args[0]);
         const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__float_bool_int)(VM*, f64, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_int__float_bool_int(VM* vm, const char* mod, const char* name, __f_int__float_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__float_bool_float)(VM*, f64, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__float_bool_float(VM* vm, const char* mod, const char* name, __f_int__float_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__float_bool_str)(VM*, f64, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__float_bool_str(VM* vm, const char* mod, const char* name, __f_int__float_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__float_bool_bool)(VM*, f64, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_int__float_bool_bool(VM* vm, const char* mod, const char* name, __f_int__float_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_int_int)(VM*, const char*, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_int__str_int_int(VM* vm, const char* mod, const char* name, __f_int__str_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_int_float)(VM*, const char*, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__str_int_float(VM* vm, const char* mod, const char* name, __f_int__str_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_int_str)(VM*, const char*, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__str_int_str(VM* vm, const char* mod, const char* name, __f_int__str_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_int_bool)(VM*, const char*, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_int__str_int_bool(VM* vm, const char* mod, const char* name, __f_int__str_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_float_int)(VM*, const char*, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_int__str_float_int(VM* vm, const char* mod, const char* name, __f_int__str_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_float_float)(VM*, const char*, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__str_float_float(VM* vm, const char* mod, const char* name, __f_int__str_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_float_str)(VM*, const char*, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__str_float_str(VM* vm, const char* mod, const char* name, __f_int__str_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_float_bool)(VM*, const char*, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_int__str_float_bool(VM* vm, const char* mod, const char* name, __f_int__str_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_str_int)(VM*, const char*, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_int__str_str_int(VM* vm, const char* mod, const char* name, __f_int__str_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_str_float)(VM*, const char*, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__str_str_float(VM* vm, const char* mod, const char* name, __f_int__str_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_str_str)(VM*, const char*, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__str_str_str(VM* vm, const char* mod, const char* name, __f_int__str_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_str_bool)(VM*, const char*, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_int__str_str_bool(VM* vm, const char* mod, const char* name, __f_int__str_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_bool_int)(VM*, const char*, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_int__str_bool_int(VM* vm, const char* mod, const char* name, __f_int__str_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_bool_float)(VM*, const char*, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__str_bool_float(VM* vm, const char* mod, const char* name, __f_int__str_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_bool_str)(VM*, const char*, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__str_bool_str(VM* vm, const char* mod, const char* name, __f_int__str_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_bool_bool)(VM*, const char*, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_int__str_bool_bool(VM* vm, const char* mod, const char* name, __f_int__str_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_int_int)(VM*, bool, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_int_int(VM* vm, const char* mod, const char* name, __f_int__bool_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_int_float)(VM*, bool, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_int_float(VM* vm, const char* mod, const char* name, __f_int__bool_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_int_str)(VM*, bool, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_int_str(VM* vm, const char* mod, const char* name, __f_int__bool_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_int_bool)(VM*, bool, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_int_bool(VM* vm, const char* mod, const char* name, __f_int__bool_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_float_int)(VM*, bool, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_float_int(VM* vm, const char* mod, const char* name, __f_int__bool_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_float_float)(VM*, bool, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_float_float(VM* vm, const char* mod, const char* name, __f_int__bool_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_float_str)(VM*, bool, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_float_str(VM* vm, const char* mod, const char* name, __f_int__bool_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_float_bool)(VM*, bool, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_float_bool(VM* vm, const char* mod, const char* name, __f_int__bool_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_str_int)(VM*, bool, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_str_int(VM* vm, const char* mod, const char* name, __f_int__bool_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_str_float)(VM*, bool, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_str_float(VM* vm, const char* mod, const char* name, __f_int__bool_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_str_str)(VM*, bool, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_str_str(VM* vm, const char* mod, const char* name, __f_int__bool_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_str_bool)(VM*, bool, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_str_bool(VM* vm, const char* mod, const char* name, __f_int__bool_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_bool_int)(VM*, bool, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_bool_int(VM* vm, const char* mod, const char* name, __f_int__bool_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_bool_float)(VM*, bool, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_bool_float(VM* vm, const char* mod, const char* name, __f_int__bool_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_bool_str)(VM*, bool, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_bool_str(VM* vm, const char* mod, const char* name, __f_int__bool_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_bool_bool)(VM*, bool, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_int__bool_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_int_int)(VM*, i64, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__int_int_int(VM* vm, const char* mod, const char* name, __f_float__int_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_int_float)(VM*, i64, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__int_int_float(VM* vm, const char* mod, const char* name, __f_float__int_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_int_str)(VM*, i64, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__int_int_str(VM* vm, const char* mod, const char* name, __f_float__int_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_int_bool)(VM*, i64, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__int_int_bool(VM* vm, const char* mod, const char* name, __f_float__int_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_float_int)(VM*, i64, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__int_float_int(VM* vm, const char* mod, const char* name, __f_float__int_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_float_float)(VM*, i64, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__int_float_float(VM* vm, const char* mod, const char* name, __f_float__int_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_float_str)(VM*, i64, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__int_float_str(VM* vm, const char* mod, const char* name, __f_float__int_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_float_bool)(VM*, i64, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__int_float_bool(VM* vm, const char* mod, const char* name, __f_float__int_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_str_int)(VM*, i64, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__int_str_int(VM* vm, const char* mod, const char* name, __f_float__int_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_str_float)(VM*, i64, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__int_str_float(VM* vm, const char* mod, const char* name, __f_float__int_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_str_str)(VM*, i64, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__int_str_str(VM* vm, const char* mod, const char* name, __f_float__int_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_str_bool)(VM*, i64, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__int_str_bool(VM* vm, const char* mod, const char* name, __f_float__int_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_bool_int)(VM*, i64, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__int_bool_int(VM* vm, const char* mod, const char* name, __f_float__int_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_bool_float)(VM*, i64, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__int_bool_float(VM* vm, const char* mod, const char* name, __f_float__int_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_bool_str)(VM*, i64, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__int_bool_str(VM* vm, const char* mod, const char* name, __f_float__int_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_bool_bool)(VM*, i64, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__int_bool_bool(VM* vm, const char* mod, const char* name, __f_float__int_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_int_int)(VM*, f64, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__float_int_int(VM* vm, const char* mod, const char* name, __f_float__float_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_int_float)(VM*, f64, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__float_int_float(VM* vm, const char* mod, const char* name, __f_float__float_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_int_str)(VM*, f64, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__float_int_str(VM* vm, const char* mod, const char* name, __f_float__float_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_int_bool)(VM*, f64, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__float_int_bool(VM* vm, const char* mod, const char* name, __f_float__float_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_float_int)(VM*, f64, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__float_float_int(VM* vm, const char* mod, const char* name, __f_float__float_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_float_float)(VM*, f64, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__float_float_float(VM* vm, const char* mod, const char* name, __f_float__float_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_float_str)(VM*, f64, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__float_float_str(VM* vm, const char* mod, const char* name, __f_float__float_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_float_bool)(VM*, f64, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__float_float_bool(VM* vm, const char* mod, const char* name, __f_float__float_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_str_int)(VM*, f64, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__float_str_int(VM* vm, const char* mod, const char* name, __f_float__float_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_str_float)(VM*, f64, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__float_str_float(VM* vm, const char* mod, const char* name, __f_float__float_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_str_str)(VM*, f64, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__float_str_str(VM* vm, const char* mod, const char* name, __f_float__float_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_str_bool)(VM*, f64, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__float_str_bool(VM* vm, const char* mod, const char* name, __f_float__float_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_bool_int)(VM*, f64, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__float_bool_int(VM* vm, const char* mod, const char* name, __f_float__float_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_bool_float)(VM*, f64, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__float_bool_float(VM* vm, const char* mod, const char* name, __f_float__float_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_bool_str)(VM*, f64, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__float_bool_str(VM* vm, const char* mod, const char* name, __f_float__float_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_bool_bool)(VM*, f64, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__float_bool_bool(VM* vm, const char* mod, const char* name, __f_float__float_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_int_int)(VM*, const char*, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__str_int_int(VM* vm, const char* mod, const char* name, __f_float__str_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_int_float)(VM*, const char*, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__str_int_float(VM* vm, const char* mod, const char* name, __f_float__str_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_int_str)(VM*, const char*, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__str_int_str(VM* vm, const char* mod, const char* name, __f_float__str_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_int_bool)(VM*, const char*, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__str_int_bool(VM* vm, const char* mod, const char* name, __f_float__str_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_float_int)(VM*, const char*, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__str_float_int(VM* vm, const char* mod, const char* name, __f_float__str_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_float_float)(VM*, const char*, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__str_float_float(VM* vm, const char* mod, const char* name, __f_float__str_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_float_str)(VM*, const char*, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__str_float_str(VM* vm, const char* mod, const char* name, __f_float__str_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_float_bool)(VM*, const char*, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__str_float_bool(VM* vm, const char* mod, const char* name, __f_float__str_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_str_int)(VM*, const char*, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__str_str_int(VM* vm, const char* mod, const char* name, __f_float__str_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_str_float)(VM*, const char*, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__str_str_float(VM* vm, const char* mod, const char* name, __f_float__str_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_str_str)(VM*, const char*, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__str_str_str(VM* vm, const char* mod, const char* name, __f_float__str_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_str_bool)(VM*, const char*, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__str_str_bool(VM* vm, const char* mod, const char* name, __f_float__str_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_bool_int)(VM*, const char*, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__str_bool_int(VM* vm, const char* mod, const char* name, __f_float__str_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_bool_float)(VM*, const char*, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__str_bool_float(VM* vm, const char* mod, const char* name, __f_float__str_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_bool_str)(VM*, const char*, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__str_bool_str(VM* vm, const char* mod, const char* name, __f_float__str_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_bool_bool)(VM*, const char*, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__str_bool_bool(VM* vm, const char* mod, const char* name, __f_float__str_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_int_int)(VM*, bool, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_int_int(VM* vm, const char* mod, const char* name, __f_float__bool_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_int_float)(VM*, bool, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_int_float(VM* vm, const char* mod, const char* name, __f_float__bool_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_int_str)(VM*, bool, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_int_str(VM* vm, const char* mod, const char* name, __f_float__bool_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_int_bool)(VM*, bool, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_int_bool(VM* vm, const char* mod, const char* name, __f_float__bool_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_float_int)(VM*, bool, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_float_int(VM* vm, const char* mod, const char* name, __f_float__bool_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_float_float)(VM*, bool, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_float_float(VM* vm, const char* mod, const char* name, __f_float__bool_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_float_str)(VM*, bool, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_float_str(VM* vm, const char* mod, const char* name, __f_float__bool_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_float_bool)(VM*, bool, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_float_bool(VM* vm, const char* mod, const char* name, __f_float__bool_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_str_int)(VM*, bool, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_str_int(VM* vm, const char* mod, const char* name, __f_float__bool_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_str_float)(VM*, bool, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_str_float(VM* vm, const char* mod, const char* name, __f_float__bool_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_str_str)(VM*, bool, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_str_str(VM* vm, const char* mod, const char* name, __f_float__bool_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_str_bool)(VM*, bool, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_str_bool(VM* vm, const char* mod, const char* name, __f_float__bool_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_bool_int)(VM*, bool, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_bool_int(VM* vm, const char* mod, const char* name, __f_float__bool_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_bool_float)(VM*, bool, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_bool_float(VM* vm, const char* mod, const char* name, __f_float__bool_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_bool_str)(VM*, bool, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_bool_str(VM* vm, const char* mod, const char* name, __f_float__bool_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_bool_bool)(VM*, bool, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_float__bool_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_int_int)(VM*, i64, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__int_int_int(VM* vm, const char* mod, const char* name, __f_str__int_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_int_float)(VM*, i64, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__int_int_float(VM* vm, const char* mod, const char* name, __f_str__int_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_int_str)(VM*, i64, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__int_int_str(VM* vm, const char* mod, const char* name, __f_str__int_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_int_bool)(VM*, i64, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__int_int_bool(VM* vm, const char* mod, const char* name, __f_str__int_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_float_int)(VM*, i64, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__int_float_int(VM* vm, const char* mod, const char* name, __f_str__int_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_float_float)(VM*, i64, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__int_float_float(VM* vm, const char* mod, const char* name, __f_str__int_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_float_str)(VM*, i64, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__int_float_str(VM* vm, const char* mod, const char* name, __f_str__int_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_float_bool)(VM*, i64, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__int_float_bool(VM* vm, const char* mod, const char* name, __f_str__int_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_str_int)(VM*, i64, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__int_str_int(VM* vm, const char* mod, const char* name, __f_str__int_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_str_float)(VM*, i64, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__int_str_float(VM* vm, const char* mod, const char* name, __f_str__int_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_str_str)(VM*, i64, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__int_str_str(VM* vm, const char* mod, const char* name, __f_str__int_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_str_bool)(VM*, i64, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__int_str_bool(VM* vm, const char* mod, const char* name, __f_str__int_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_bool_int)(VM*, i64, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__int_bool_int(VM* vm, const char* mod, const char* name, __f_str__int_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_bool_float)(VM*, i64, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__int_bool_float(VM* vm, const char* mod, const char* name, __f_str__int_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_bool_str)(VM*, i64, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__int_bool_str(VM* vm, const char* mod, const char* name, __f_str__int_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_bool_bool)(VM*, i64, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__int_bool_bool(VM* vm, const char* mod, const char* name, __f_str__int_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_int_int)(VM*, f64, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__float_int_int(VM* vm, const char* mod, const char* name, __f_str__float_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_int_float)(VM*, f64, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__float_int_float(VM* vm, const char* mod, const char* name, __f_str__float_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_int_str)(VM*, f64, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__float_int_str(VM* vm, const char* mod, const char* name, __f_str__float_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_int_bool)(VM*, f64, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__float_int_bool(VM* vm, const char* mod, const char* name, __f_str__float_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_float_int)(VM*, f64, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__float_float_int(VM* vm, const char* mod, const char* name, __f_str__float_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_float_float)(VM*, f64, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__float_float_float(VM* vm, const char* mod, const char* name, __f_str__float_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_float_str)(VM*, f64, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__float_float_str(VM* vm, const char* mod, const char* name, __f_str__float_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_float_bool)(VM*, f64, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__float_float_bool(VM* vm, const char* mod, const char* name, __f_str__float_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_str_int)(VM*, f64, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__float_str_int(VM* vm, const char* mod, const char* name, __f_str__float_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_str_float)(VM*, f64, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__float_str_float(VM* vm, const char* mod, const char* name, __f_str__float_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_str_str)(VM*, f64, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__float_str_str(VM* vm, const char* mod, const char* name, __f_str__float_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_str_bool)(VM*, f64, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__float_str_bool(VM* vm, const char* mod, const char* name, __f_str__float_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_bool_int)(VM*, f64, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__float_bool_int(VM* vm, const char* mod, const char* name, __f_str__float_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_bool_float)(VM*, f64, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__float_bool_float(VM* vm, const char* mod, const char* name, __f_str__float_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_bool_str)(VM*, f64, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__float_bool_str(VM* vm, const char* mod, const char* name, __f_str__float_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_bool_bool)(VM*, f64, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__float_bool_bool(VM* vm, const char* mod, const char* name, __f_str__float_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_int_int)(VM*, const char*, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__str_int_int(VM* vm, const char* mod, const char* name, __f_str__str_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_int_float)(VM*, const char*, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__str_int_float(VM* vm, const char* mod, const char* name, __f_str__str_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_int_str)(VM*, const char*, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__str_int_str(VM* vm, const char* mod, const char* name, __f_str__str_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_int_bool)(VM*, const char*, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__str_int_bool(VM* vm, const char* mod, const char* name, __f_str__str_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_float_int)(VM*, const char*, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__str_float_int(VM* vm, const char* mod, const char* name, __f_str__str_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_float_float)(VM*, const char*, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__str_float_float(VM* vm, const char* mod, const char* name, __f_str__str_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_float_str)(VM*, const char*, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__str_float_str(VM* vm, const char* mod, const char* name, __f_str__str_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_float_bool)(VM*, const char*, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__str_float_bool(VM* vm, const char* mod, const char* name, __f_str__str_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_str_int)(VM*, const char*, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__str_str_int(VM* vm, const char* mod, const char* name, __f_str__str_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_str_float)(VM*, const char*, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__str_str_float(VM* vm, const char* mod, const char* name, __f_str__str_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_str_str)(VM*, const char*, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__str_str_str(VM* vm, const char* mod, const char* name, __f_str__str_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_str_bool)(VM*, const char*, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__str_str_bool(VM* vm, const char* mod, const char* name, __f_str__str_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_bool_int)(VM*, const char*, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__str_bool_int(VM* vm, const char* mod, const char* name, __f_str__str_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_bool_float)(VM*, const char*, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__str_bool_float(VM* vm, const char* mod, const char* name, __f_str__str_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_bool_str)(VM*, const char*, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__str_bool_str(VM* vm, const char* mod, const char* name, __f_str__str_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_bool_bool)(VM*, const char*, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__str_bool_bool(VM* vm, const char* mod, const char* name, __f_str__str_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_int_int)(VM*, bool, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_int_int(VM* vm, const char* mod, const char* name, __f_str__bool_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_int_float)(VM*, bool, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_int_float(VM* vm, const char* mod, const char* name, __f_str__bool_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_int_str)(VM*, bool, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_int_str(VM* vm, const char* mod, const char* name, __f_str__bool_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_int_bool)(VM*, bool, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_int_bool(VM* vm, const char* mod, const char* name, __f_str__bool_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_float_int)(VM*, bool, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_float_int(VM* vm, const char* mod, const char* name, __f_str__bool_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_float_float)(VM*, bool, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_float_float(VM* vm, const char* mod, const char* name, __f_str__bool_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_float_str)(VM*, bool, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_float_str(VM* vm, const char* mod, const char* name, __f_str__bool_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_float_bool)(VM*, bool, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_float_bool(VM* vm, const char* mod, const char* name, __f_str__bool_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_str_int)(VM*, bool, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_str_int(VM* vm, const char* mod, const char* name, __f_str__bool_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_str_float)(VM*, bool, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_str_float(VM* vm, const char* mod, const char* name, __f_str__bool_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_str_str)(VM*, bool, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_str_str(VM* vm, const char* mod, const char* name, __f_str__bool_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_str_bool)(VM*, bool, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_str_bool(VM* vm, const char* mod, const char* name, __f_str__bool_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_bool_int)(VM*, bool, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_bool_int(VM* vm, const char* mod, const char* name, __f_str__bool_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_bool_float)(VM*, bool, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_bool_float(VM* vm, const char* mod, const char* name, __f_str__bool_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_bool_str)(VM*, bool, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_bool_str(VM* vm, const char* mod, const char* name, __f_str__bool_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_bool_bool)(VM*, bool, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_str__bool_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_int_int)(VM*, i64, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_int_int(VM* vm, const char* mod, const char* name, __f_bool__int_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_int_float)(VM*, i64, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_int_float(VM* vm, const char* mod, const char* name, __f_bool__int_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_int_str)(VM*, i64, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_int_str(VM* vm, const char* mod, const char* name, __f_bool__int_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_int_bool)(VM*, i64, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_int_bool(VM* vm, const char* mod, const char* name, __f_bool__int_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_float_int)(VM*, i64, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_float_int(VM* vm, const char* mod, const char* name, __f_bool__int_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_float_float)(VM*, i64, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_float_float(VM* vm, const char* mod, const char* name, __f_bool__int_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_float_str)(VM*, i64, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_float_str(VM* vm, const char* mod, const char* name, __f_bool__int_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_float_bool)(VM*, i64, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_float_bool(VM* vm, const char* mod, const char* name, __f_bool__int_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_str_int)(VM*, i64, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_str_int(VM* vm, const char* mod, const char* name, __f_bool__int_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_str_float)(VM*, i64, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_str_float(VM* vm, const char* mod, const char* name, __f_bool__int_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_str_str)(VM*, i64, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_str_str(VM* vm, const char* mod, const char* name, __f_bool__int_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_str_bool)(VM*, i64, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_str_bool(VM* vm, const char* mod, const char* name, __f_bool__int_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_bool_int)(VM*, i64, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_bool_int(VM* vm, const char* mod, const char* name, __f_bool__int_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_bool_float)(VM*, i64, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_bool_float(VM* vm, const char* mod, const char* name, __f_bool__int_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_bool_str)(VM*, i64, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_bool_str(VM* vm, const char* mod, const char* name, __f_bool__int_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_bool_bool)(VM*, i64, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_bool_bool(VM* vm, const char* mod, const char* name, __f_bool__int_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_int_int)(VM*, f64, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_int_int(VM* vm, const char* mod, const char* name, __f_bool__float_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_int_float)(VM*, f64, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_int_float(VM* vm, const char* mod, const char* name, __f_bool__float_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_int_str)(VM*, f64, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_int_str(VM* vm, const char* mod, const char* name, __f_bool__float_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_int_bool)(VM*, f64, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_int_bool(VM* vm, const char* mod, const char* name, __f_bool__float_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_float_int)(VM*, f64, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_float_int(VM* vm, const char* mod, const char* name, __f_bool__float_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_float_float)(VM*, f64, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_float_float(VM* vm, const char* mod, const char* name, __f_bool__float_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_float_str)(VM*, f64, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_float_str(VM* vm, const char* mod, const char* name, __f_bool__float_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_float_bool)(VM*, f64, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_float_bool(VM* vm, const char* mod, const char* name, __f_bool__float_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_str_int)(VM*, f64, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_str_int(VM* vm, const char* mod, const char* name, __f_bool__float_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_str_float)(VM*, f64, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_str_float(VM* vm, const char* mod, const char* name, __f_bool__float_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_str_str)(VM*, f64, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_str_str(VM* vm, const char* mod, const char* name, __f_bool__float_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_str_bool)(VM*, f64, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_str_bool(VM* vm, const char* mod, const char* name, __f_bool__float_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_bool_int)(VM*, f64, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_bool_int(VM* vm, const char* mod, const char* name, __f_bool__float_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_bool_float)(VM*, f64, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_bool_float(VM* vm, const char* mod, const char* name, __f_bool__float_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_bool_str)(VM*, f64, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_bool_str(VM* vm, const char* mod, const char* name, __f_bool__float_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_bool_bool)(VM*, f64, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_bool_bool(VM* vm, const char* mod, const char* name, __f_bool__float_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_int_int)(VM*, const char*, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_int_int(VM* vm, const char* mod, const char* name, __f_bool__str_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_int_float)(VM*, const char*, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_int_float(VM* vm, const char* mod, const char* name, __f_bool__str_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_int_str)(VM*, const char*, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_int_str(VM* vm, const char* mod, const char* name, __f_bool__str_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_int_bool)(VM*, const char*, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_int_bool(VM* vm, const char* mod, const char* name, __f_bool__str_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_float_int)(VM*, const char*, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_float_int(VM* vm, const char* mod, const char* name, __f_bool__str_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_float_float)(VM*, const char*, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_float_float(VM* vm, const char* mod, const char* name, __f_bool__str_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_float_str)(VM*, const char*, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_float_str(VM* vm, const char* mod, const char* name, __f_bool__str_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_float_bool)(VM*, const char*, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_float_bool(VM* vm, const char* mod, const char* name, __f_bool__str_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_str_int)(VM*, const char*, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_str_int(VM* vm, const char* mod, const char* name, __f_bool__str_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_str_float)(VM*, const char*, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_str_float(VM* vm, const char* mod, const char* name, __f_bool__str_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_str_str)(VM*, const char*, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_str_str(VM* vm, const char* mod, const char* name, __f_bool__str_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_str_bool)(VM*, const char*, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_str_bool(VM* vm, const char* mod, const char* name, __f_bool__str_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_bool_int)(VM*, const char*, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_bool_int(VM* vm, const char* mod, const char* name, __f_bool__str_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_bool_float)(VM*, const char*, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_bool_float(VM* vm, const char* mod, const char* name, __f_bool__str_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_bool_str)(VM*, const char*, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_bool_str(VM* vm, const char* mod, const char* name, __f_bool__str_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_bool_bool)(VM*, const char*, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_bool_bool(VM* vm, const char* mod, const char* name, __f_bool__str_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_int_int)(VM*, bool, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_int_int(VM* vm, const char* mod, const char* name, __f_bool__bool_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_int_float)(VM*, bool, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_int_float(VM* vm, const char* mod, const char* name, __f_bool__bool_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_int_str)(VM*, bool, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_int_str(VM* vm, const char* mod, const char* name, __f_bool__bool_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_int_bool)(VM*, bool, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_int_bool(VM* vm, const char* mod, const char* name, __f_bool__bool_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_float_int)(VM*, bool, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_float_int(VM* vm, const char* mod, const char* name, __f_bool__bool_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_float_float)(VM*, bool, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_float_float(VM* vm, const char* mod, const char* name, __f_bool__bool_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_float_str)(VM*, bool, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_float_str(VM* vm, const char* mod, const char* name, __f_bool__bool_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_float_bool)(VM*, bool, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_float_bool(VM* vm, const char* mod, const char* name, __f_bool__bool_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_str_int)(VM*, bool, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_str_int(VM* vm, const char* mod, const char* name, __f_bool__bool_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_str_float)(VM*, bool, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_str_float(VM* vm, const char* mod, const char* name, __f_bool__bool_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_str_str)(VM*, bool, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_str_str(VM* vm, const char* mod, const char* name, __f_bool__bool_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_str_bool)(VM*, bool, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_str_bool(VM* vm, const char* mod, const char* name, __f_bool__bool_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_bool_int)(VM*, bool, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_bool_int(VM* vm, const char* mod, const char* name, __f_bool__bool_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_bool_float)(VM*, bool, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_bool_float(VM* vm, const char* mod, const char* name, __f_bool__bool_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_bool_str)(VM*, bool, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_bool_str(VM* vm, const char* mod, const char* name, __f_bool__bool_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_bool_bool)(VM*, bool, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_bool__bool_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef void (*__f_None__int_int_int)(VM*, i64, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__int_int_int(VM* vm, const char* mod, const char* name, __f_None__int_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_int_float)(VM*, i64, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__int_int_float(VM* vm, const char* mod, const char* name, __f_None__int_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_int_str)(VM*, i64, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__int_int_str(VM* vm, const char* mod, const char* name, __f_None__int_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_int_bool)(VM*, i64, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__int_int_bool(VM* vm, const char* mod, const char* name, __f_None__int_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_float_int)(VM*, i64, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__int_float_int(VM* vm, const char* mod, const char* name, __f_None__int_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_float_float)(VM*, i64, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__int_float_float(VM* vm, const char* mod, const char* name, __f_None__int_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_float_str)(VM*, i64, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__int_float_str(VM* vm, const char* mod, const char* name, __f_None__int_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_float_bool)(VM*, i64, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__int_float_bool(VM* vm, const char* mod, const char* name, __f_None__int_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_str_int)(VM*, i64, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__int_str_int(VM* vm, const char* mod, const char* name, __f_None__int_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_str_float)(VM*, i64, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__int_str_float(VM* vm, const char* mod, const char* name, __f_None__int_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_str_str)(VM*, i64, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__int_str_str(VM* vm, const char* mod, const char* name, __f_None__int_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_str_bool)(VM*, i64, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__int_str_bool(VM* vm, const char* mod, const char* name, __f_None__int_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_bool_int)(VM*, i64, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__int_bool_int(VM* vm, const char* mod, const char* name, __f_None__int_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_bool_float)(VM*, i64, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__int_bool_float(VM* vm, const char* mod, const char* name, __f_None__int_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_bool_str)(VM*, i64, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__int_bool_str(VM* vm, const char* mod, const char* name, __f_None__int_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_bool_bool)(VM*, i64, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__int_bool_bool(VM* vm, const char* mod, const char* name, __f_None__int_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_int_int)(VM*, f64, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__float_int_int(VM* vm, const char* mod, const char* name, __f_None__float_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_int_float)(VM*, f64, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__float_int_float(VM* vm, const char* mod, const char* name, __f_None__float_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_int_str)(VM*, f64, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__float_int_str(VM* vm, const char* mod, const char* name, __f_None__float_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_int_bool)(VM*, f64, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__float_int_bool(VM* vm, const char* mod, const char* name, __f_None__float_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_float_int)(VM*, f64, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__float_float_int(VM* vm, const char* mod, const char* name, __f_None__float_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_float_float)(VM*, f64, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__float_float_float(VM* vm, const char* mod, const char* name, __f_None__float_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_float_str)(VM*, f64, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__float_float_str(VM* vm, const char* mod, const char* name, __f_None__float_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_float_bool)(VM*, f64, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__float_float_bool(VM* vm, const char* mod, const char* name, __f_None__float_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_str_int)(VM*, f64, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__float_str_int(VM* vm, const char* mod, const char* name, __f_None__float_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_str_float)(VM*, f64, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__float_str_float(VM* vm, const char* mod, const char* name, __f_None__float_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_str_str)(VM*, f64, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__float_str_str(VM* vm, const char* mod, const char* name, __f_None__float_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_str_bool)(VM*, f64, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__float_str_bool(VM* vm, const char* mod, const char* name, __f_None__float_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_bool_int)(VM*, f64, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__float_bool_int(VM* vm, const char* mod, const char* name, __f_None__float_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_bool_float)(VM*, f64, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__float_bool_float(VM* vm, const char* mod, const char* name, __f_None__float_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_bool_str)(VM*, f64, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__float_bool_str(VM* vm, const char* mod, const char* name, __f_None__float_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_bool_bool)(VM*, f64, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__float_bool_bool(VM* vm, const char* mod, const char* name, __f_None__float_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_int_int)(VM*, const char*, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__str_int_int(VM* vm, const char* mod, const char* name, __f_None__str_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_int_float)(VM*, const char*, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__str_int_float(VM* vm, const char* mod, const char* name, __f_None__str_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_int_str)(VM*, const char*, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__str_int_str(VM* vm, const char* mod, const char* name, __f_None__str_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_int_bool)(VM*, const char*, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__str_int_bool(VM* vm, const char* mod, const char* name, __f_None__str_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_float_int)(VM*, const char*, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__str_float_int(VM* vm, const char* mod, const char* name, __f_None__str_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_float_float)(VM*, const char*, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__str_float_float(VM* vm, const char* mod, const char* name, __f_None__str_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_float_str)(VM*, const char*, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__str_float_str(VM* vm, const char* mod, const char* name, __f_None__str_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_float_bool)(VM*, const char*, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__str_float_bool(VM* vm, const char* mod, const char* name, __f_None__str_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_str_int)(VM*, const char*, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__str_str_int(VM* vm, const char* mod, const char* name, __f_None__str_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_str_float)(VM*, const char*, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__str_str_float(VM* vm, const char* mod, const char* name, __f_None__str_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_str_str)(VM*, const char*, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__str_str_str(VM* vm, const char* mod, const char* name, __f_None__str_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_str_bool)(VM*, const char*, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__str_str_bool(VM* vm, const char* mod, const char* name, __f_None__str_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_bool_int)(VM*, const char*, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__str_bool_int(VM* vm, const char* mod, const char* name, __f_None__str_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_bool_float)(VM*, const char*, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__str_bool_float(VM* vm, const char* mod, const char* name, __f_None__str_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_bool_str)(VM*, const char*, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__str_bool_str(VM* vm, const char* mod, const char* name, __f_None__str_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_bool_bool)(VM*, const char*, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__str_bool_bool(VM* vm, const char* mod, const char* name, __f_None__str_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_int_int)(VM*, bool, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_int_int(VM* vm, const char* mod, const char* name, __f_None__bool_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_int_float)(VM*, bool, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_int_float(VM* vm, const char* mod, const char* name, __f_None__bool_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_int_str)(VM*, bool, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_int_str(VM* vm, const char* mod, const char* name, __f_None__bool_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_int_bool)(VM*, bool, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_int_bool(VM* vm, const char* mod, const char* name, __f_None__bool_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_float_int)(VM*, bool, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_float_int(VM* vm, const char* mod, const char* name, __f_None__bool_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_float_float)(VM*, bool, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_float_float(VM* vm, const char* mod, const char* name, __f_None__bool_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_float_str)(VM*, bool, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_float_str(VM* vm, const char* mod, const char* name, __f_None__bool_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_float_bool)(VM*, bool, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_float_bool(VM* vm, const char* mod, const char* name, __f_None__bool_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_str_int)(VM*, bool, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_str_int(VM* vm, const char* mod, const char* name, __f_None__bool_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_str_float)(VM*, bool, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_str_float(VM* vm, const char* mod, const char* name, __f_None__bool_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_str_str)(VM*, bool, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_str_str(VM* vm, const char* mod, const char* name, __f_None__bool_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_str_bool)(VM*, bool, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_str_bool(VM* vm, const char* mod, const char* name, __f_None__bool_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_bool_int)(VM*, bool, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_bool_int(VM* vm, const char* mod, const char* name, __f_None__bool_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_bool_float)(VM*, bool, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_bool_float(VM* vm, const char* mod, const char* name, __f_None__bool_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_bool_str)(VM*, bool, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_bool_str(VM* vm, const char* mod, const char* name, __f_None__bool_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
         const char* _2 = vm->PyStr_AS_C(args[2]);
         f(vm, _0, _1, _2);
         return vm->None;

+ 1 - 1
plugins/godot/godot-cpp

@@ -1 +1 @@
-Subproject commit bd9b1dc1aee9ef625ce922cc127ef7456c36169c
+Subproject commit 5a12c3df42bb5ed9ddb14aba4b6807021f101f77

+ 3 - 0
scripts/moc.py

@@ -8,6 +8,9 @@ mapping = {
 
 def args(n, a: list, res: list, first=True):
     if n == 0:
+        # 3 args must be the same type
+        if len(a) == 4 and len(set(a[1:])) != 1:
+            return
         res.append(tuple(a))
         return
     for p_ret, c_ret in mapping.items():

+ 90 - 3990
src/_bindings.h

@@ -12,129 +12,25 @@ void pkpy_vm_bind__f_int__int_int_int(VM* vm, const char* mod, const char* name,
     });
 }
 
-typedef i64 (*__f_int__int_int_float)(VM*, i64, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__int_int_float(VM* vm, const char* mod, const char* name, __f_int__int_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__int_int_str)(VM*, i64, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__int_int_str(VM* vm, const char* mod, const char* name, __f_int__int_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__int_int_bool)(VM*, i64, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_int__int_int_bool(VM* vm, const char* mod, const char* name, __f_int__int_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__int_float_int)(VM*, i64, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_int__int_float_int(VM* vm, const char* mod, const char* name, __f_int__int_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__int_float_float)(VM*, i64, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__int_float_float(VM* vm, const char* mod, const char* name, __f_int__int_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__int_float_str)(VM*, i64, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__int_float_str(VM* vm, const char* mod, const char* name, __f_int__int_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__int_float_bool)(VM*, i64, f64, bool);
+typedef i64 (*__f_int__float_float_float)(VM*, f64, f64, f64);
 __EXPORT
-void pkpy_vm_bind__f_int__int_float_bool(VM* vm, const char* mod, const char* name, __f_int__int_float_bool f) {
+void pkpy_vm_bind__f_int__float_float_float(VM* vm, const char* mod, const char* name, __f_int__float_float_float f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
+        f64 _0 = vm->PyFloat_AS_C(args[0]);
         f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__int_str_int)(VM*, i64, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_int__int_str_int(VM* vm, const char* mod, const char* name, __f_int__int_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__int_str_float)(VM*, i64, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__int_str_float(VM* vm, const char* mod, const char* name, __f_int__int_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
         f64 _2 = vm->PyFloat_AS_C(args[2]);
         i64 ret = f(vm, _0, _1, _2);
         return vm->PyInt(ret);
     });
 }
 
-typedef i64 (*__f_int__int_str_str)(VM*, i64, const char*, const char*);
+typedef i64 (*__f_int__str_str_str)(VM*, const char*, const char*, const char*);
 __EXPORT
-void pkpy_vm_bind__f_int__int_str_str(VM* vm, const char* mod, const char* name, __f_int__int_str_str f) {
+void pkpy_vm_bind__f_int__str_str_str(VM* vm, const char* mod, const char* name, __f_int__str_str_str f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
+        const char* _0 = vm->PyStr_AS_C(args[0]);
         const char* _1 = vm->PyStr_AS_C(args[1]);
         const char* _2 = vm->PyStr_AS_C(args[2]);
         i64 ret = f(vm, _0, _1, _2);
@@ -142,4004 +38,208 @@ void pkpy_vm_bind__f_int__int_str_str(VM* vm, const char* mod, const char* name,
     });
 }
 
-typedef i64 (*__f_int__int_str_bool)(VM*, i64, const char*, bool);
+typedef i64 (*__f_int__bool_bool_bool)(VM*, bool, bool, bool);
 __EXPORT
-void pkpy_vm_bind__f_int__int_str_bool(VM* vm, const char* mod, const char* name, __f_int__int_str_bool f) {
+void pkpy_vm_bind__f_int__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_int__bool_bool_bool f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
+        bool _0 = vm->PyBool_AS_C(args[0]);
+        bool _1 = vm->PyBool_AS_C(args[1]);
         bool _2 = vm->PyBool_AS_C(args[2]);
         i64 ret = f(vm, _0, _1, _2);
         return vm->PyInt(ret);
     });
 }
 
-typedef i64 (*__f_int__int_bool_int)(VM*, i64, bool, i64);
+typedef f64 (*__f_float__int_int_int)(VM*, i64, i64, i64);
 __EXPORT
-void pkpy_vm_bind__f_int__int_bool_int(VM* vm, const char* mod, const char* name, __f_int__int_bool_int f) {
+void pkpy_vm_bind__f_float__int_int_int(VM* vm, const char* mod, const char* name, __f_float__int_int_int f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
         i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
+        i64 _1 = vm->PyInt_AS_C(args[1]);
         i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        f64 ret = f(vm, _0, _1, _2);
+        return vm->PyFloat(ret);
     });
 }
 
-typedef i64 (*__f_int__int_bool_float)(VM*, i64, bool, f64);
+typedef f64 (*__f_float__float_float_float)(VM*, f64, f64, f64);
 __EXPORT
-void pkpy_vm_bind__f_int__int_bool_float(VM* vm, const char* mod, const char* name, __f_int__int_bool_float f) {
+void pkpy_vm_bind__f_float__float_float_float(VM* vm, const char* mod, const char* name, __f_float__float_float_float f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
+        f64 _0 = vm->PyFloat_AS_C(args[0]);
+        f64 _1 = vm->PyFloat_AS_C(args[1]);
         f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        f64 ret = f(vm, _0, _1, _2);
+        return vm->PyFloat(ret);
     });
 }
 
-typedef i64 (*__f_int__int_bool_str)(VM*, i64, bool, const char*);
+typedef f64 (*__f_float__str_str_str)(VM*, const char*, const char*, const char*);
 __EXPORT
-void pkpy_vm_bind__f_int__int_bool_str(VM* vm, const char* mod, const char* name, __f_int__int_bool_str f) {
+void pkpy_vm_bind__f_float__str_str_str(VM* vm, const char* mod, const char* name, __f_float__str_str_str f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
+        const char* _0 = vm->PyStr_AS_C(args[0]);
+        const char* _1 = vm->PyStr_AS_C(args[1]);
         const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        f64 ret = f(vm, _0, _1, _2);
+        return vm->PyFloat(ret);
     });
 }
 
-typedef i64 (*__f_int__int_bool_bool)(VM*, i64, bool, bool);
+typedef f64 (*__f_float__bool_bool_bool)(VM*, bool, bool, bool);
 __EXPORT
-void pkpy_vm_bind__f_int__int_bool_bool(VM* vm, const char* mod, const char* name, __f_int__int_bool_bool f) {
+void pkpy_vm_bind__f_float__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_float__bool_bool_bool f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
+        bool _0 = vm->PyBool_AS_C(args[0]);
         bool _1 = vm->PyBool_AS_C(args[1]);
         bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        f64 ret = f(vm, _0, _1, _2);
+        return vm->PyFloat(ret);
     });
 }
 
-typedef i64 (*__f_int__float_int_int)(VM*, f64, i64, i64);
+typedef const char* (*__f_str__int_int_int)(VM*, i64, i64, i64);
 __EXPORT
-void pkpy_vm_bind__f_int__float_int_int(VM* vm, const char* mod, const char* name, __f_int__float_int_int f) {
+void pkpy_vm_bind__f_str__int_int_int(VM* vm, const char* mod, const char* name, __f_str__int_int_int f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
+        i64 _0 = vm->PyInt_AS_C(args[0]);
         i64 _1 = vm->PyInt_AS_C(args[1]);
         i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        const char* ret = f(vm, _0, _1, _2);
+        return vm->PyStr(ret);
     });
 }
 
-typedef i64 (*__f_int__float_int_float)(VM*, f64, i64, f64);
+typedef const char* (*__f_str__float_float_float)(VM*, f64, f64, f64);
 __EXPORT
-void pkpy_vm_bind__f_int__float_int_float(VM* vm, const char* mod, const char* name, __f_int__float_int_float f) {
+void pkpy_vm_bind__f_str__float_float_float(VM* vm, const char* mod, const char* name, __f_str__float_float_float f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
         f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
+        f64 _1 = vm->PyFloat_AS_C(args[1]);
         f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        const char* ret = f(vm, _0, _1, _2);
+        return vm->PyStr(ret);
     });
 }
 
-typedef i64 (*__f_int__float_int_str)(VM*, f64, i64, const char*);
+typedef const char* (*__f_str__str_str_str)(VM*, const char*, const char*, const char*);
 __EXPORT
-void pkpy_vm_bind__f_int__float_int_str(VM* vm, const char* mod, const char* name, __f_int__float_int_str f) {
+void pkpy_vm_bind__f_str__str_str_str(VM* vm, const char* mod, const char* name, __f_str__str_str_str f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
+        const char* _0 = vm->PyStr_AS_C(args[0]);
+        const char* _1 = vm->PyStr_AS_C(args[1]);
         const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        const char* ret = f(vm, _0, _1, _2);
+        return vm->PyStr(ret);
     });
 }
 
-typedef i64 (*__f_int__float_int_bool)(VM*, f64, i64, bool);
+typedef const char* (*__f_str__bool_bool_bool)(VM*, bool, bool, bool);
 __EXPORT
-void pkpy_vm_bind__f_int__float_int_bool(VM* vm, const char* mod, const char* name, __f_int__float_int_bool f) {
+void pkpy_vm_bind__f_str__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_str__bool_bool_bool f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
+        bool _0 = vm->PyBool_AS_C(args[0]);
+        bool _1 = vm->PyBool_AS_C(args[1]);
         bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        const char* ret = f(vm, _0, _1, _2);
+        return vm->PyStr(ret);
     });
 }
 
-typedef i64 (*__f_int__float_float_int)(VM*, f64, f64, i64);
+typedef bool (*__f_bool__int_int_int)(VM*, i64, i64, i64);
 __EXPORT
-void pkpy_vm_bind__f_int__float_float_int(VM* vm, const char* mod, const char* name, __f_int__float_float_int f) {
+void pkpy_vm_bind__f_bool__int_int_int(VM* vm, const char* mod, const char* name, __f_bool__int_int_int f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
+        i64 _0 = vm->PyInt_AS_C(args[0]);
+        i64 _1 = vm->PyInt_AS_C(args[1]);
         i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        bool ret = f(vm, _0, _1, _2);
+        return vm->PyBool(ret);
     });
 }
 
-typedef i64 (*__f_int__float_float_float)(VM*, f64, f64, f64);
+typedef bool (*__f_bool__float_float_float)(VM*, f64, f64, f64);
 __EXPORT
-void pkpy_vm_bind__f_int__float_float_float(VM* vm, const char* mod, const char* name, __f_int__float_float_float f) {
+void pkpy_vm_bind__f_bool__float_float_float(VM* vm, const char* mod, const char* name, __f_bool__float_float_float f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
         f64 _0 = vm->PyFloat_AS_C(args[0]);
         f64 _1 = vm->PyFloat_AS_C(args[1]);
         f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        bool ret = f(vm, _0, _1, _2);
+        return vm->PyBool(ret);
     });
 }
 
-typedef i64 (*__f_int__float_float_str)(VM*, f64, f64, const char*);
+typedef bool (*__f_bool__str_str_str)(VM*, const char*, const char*, const char*);
 __EXPORT
-void pkpy_vm_bind__f_int__float_float_str(VM* vm, const char* mod, const char* name, __f_int__float_float_str f) {
+void pkpy_vm_bind__f_bool__str_str_str(VM* vm, const char* mod, const char* name, __f_bool__str_str_str f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
+        const char* _0 = vm->PyStr_AS_C(args[0]);
+        const char* _1 = vm->PyStr_AS_C(args[1]);
         const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        bool ret = f(vm, _0, _1, _2);
+        return vm->PyBool(ret);
     });
 }
 
-typedef i64 (*__f_int__float_float_bool)(VM*, f64, f64, bool);
+typedef bool (*__f_bool__bool_bool_bool)(VM*, bool, bool, bool);
 __EXPORT
-void pkpy_vm_bind__f_int__float_float_bool(VM* vm, const char* mod, const char* name, __f_int__float_float_bool f) {
+void pkpy_vm_bind__f_bool__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_bool__bool_bool_bool f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
+        bool _0 = vm->PyBool_AS_C(args[0]);
+        bool _1 = vm->PyBool_AS_C(args[1]);
         bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        bool ret = f(vm, _0, _1, _2);
+        return vm->PyBool(ret);
     });
 }
 
-typedef i64 (*__f_int__float_str_int)(VM*, f64, const char*, i64);
+typedef void (*__f_None__int_int_int)(VM*, i64, i64, i64);
 __EXPORT
-void pkpy_vm_bind__f_int__float_str_int(VM* vm, const char* mod, const char* name, __f_int__float_str_int f) {
+void pkpy_vm_bind__f_None__int_int_int(VM* vm, const char* mod, const char* name, __f_None__int_int_int f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
+        i64 _0 = vm->PyInt_AS_C(args[0]);
+        i64 _1 = vm->PyInt_AS_C(args[1]);
         i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        f(vm, _0, _1, _2);
+        return vm->None;
     });
 }
 
-typedef i64 (*__f_int__float_str_float)(VM*, f64, const char*, f64);
+typedef void (*__f_None__float_float_float)(VM*, f64, f64, f64);
 __EXPORT
-void pkpy_vm_bind__f_int__float_str_float(VM* vm, const char* mod, const char* name, __f_int__float_str_float f) {
+void pkpy_vm_bind__f_None__float_float_float(VM* vm, const char* mod, const char* name, __f_None__float_float_float f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
         f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
+        f64 _1 = vm->PyFloat_AS_C(args[1]);
         f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__float_str_str)(VM*, f64, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__float_str_str(VM* vm, const char* mod, const char* name, __f_int__float_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
+        f(vm, _0, _1, _2);
+        return vm->None;
     });
 }
 
-typedef i64 (*__f_int__float_str_bool)(VM*, f64, const char*, bool);
+typedef void (*__f_None__str_str_str)(VM*, const char*, const char*, const char*);
 __EXPORT
-void pkpy_vm_bind__f_int__float_str_bool(VM* vm, const char* mod, const char* name, __f_int__float_str_bool f) {
+void pkpy_vm_bind__f_None__str_str_str(VM* vm, const char* mod, const char* name, __f_None__str_str_str f) {
     PyVar obj = vm->new_module_if_not_existed(mod);
     vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
+        const char* _0 = vm->PyStr_AS_C(args[0]);
         const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__float_bool_int)(VM*, f64, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_int__float_bool_int(VM* vm, const char* mod, const char* name, __f_int__float_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__float_bool_float)(VM*, f64, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__float_bool_float(VM* vm, const char* mod, const char* name, __f_int__float_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__float_bool_str)(VM*, f64, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__float_bool_str(VM* vm, const char* mod, const char* name, __f_int__float_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__float_bool_bool)(VM*, f64, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_int__float_bool_bool(VM* vm, const char* mod, const char* name, __f_int__float_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_int_int)(VM*, const char*, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_int__str_int_int(VM* vm, const char* mod, const char* name, __f_int__str_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_int_float)(VM*, const char*, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__str_int_float(VM* vm, const char* mod, const char* name, __f_int__str_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_int_str)(VM*, const char*, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__str_int_str(VM* vm, const char* mod, const char* name, __f_int__str_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_int_bool)(VM*, const char*, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_int__str_int_bool(VM* vm, const char* mod, const char* name, __f_int__str_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_float_int)(VM*, const char*, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_int__str_float_int(VM* vm, const char* mod, const char* name, __f_int__str_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_float_float)(VM*, const char*, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__str_float_float(VM* vm, const char* mod, const char* name, __f_int__str_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_float_str)(VM*, const char*, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__str_float_str(VM* vm, const char* mod, const char* name, __f_int__str_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_float_bool)(VM*, const char*, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_int__str_float_bool(VM* vm, const char* mod, const char* name, __f_int__str_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_str_int)(VM*, const char*, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_int__str_str_int(VM* vm, const char* mod, const char* name, __f_int__str_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_str_float)(VM*, const char*, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__str_str_float(VM* vm, const char* mod, const char* name, __f_int__str_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_str_str)(VM*, const char*, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__str_str_str(VM* vm, const char* mod, const char* name, __f_int__str_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_str_bool)(VM*, const char*, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_int__str_str_bool(VM* vm, const char* mod, const char* name, __f_int__str_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_bool_int)(VM*, const char*, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_int__str_bool_int(VM* vm, const char* mod, const char* name, __f_int__str_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_bool_float)(VM*, const char*, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__str_bool_float(VM* vm, const char* mod, const char* name, __f_int__str_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_bool_str)(VM*, const char*, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__str_bool_str(VM* vm, const char* mod, const char* name, __f_int__str_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__str_bool_bool)(VM*, const char*, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_int__str_bool_bool(VM* vm, const char* mod, const char* name, __f_int__str_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_int_int)(VM*, bool, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_int_int(VM* vm, const char* mod, const char* name, __f_int__bool_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_int_float)(VM*, bool, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_int_float(VM* vm, const char* mod, const char* name, __f_int__bool_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_int_str)(VM*, bool, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_int_str(VM* vm, const char* mod, const char* name, __f_int__bool_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_int_bool)(VM*, bool, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_int_bool(VM* vm, const char* mod, const char* name, __f_int__bool_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_float_int)(VM*, bool, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_float_int(VM* vm, const char* mod, const char* name, __f_int__bool_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_float_float)(VM*, bool, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_float_float(VM* vm, const char* mod, const char* name, __f_int__bool_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_float_str)(VM*, bool, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_float_str(VM* vm, const char* mod, const char* name, __f_int__bool_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_float_bool)(VM*, bool, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_float_bool(VM* vm, const char* mod, const char* name, __f_int__bool_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_str_int)(VM*, bool, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_str_int(VM* vm, const char* mod, const char* name, __f_int__bool_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_str_float)(VM*, bool, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_str_float(VM* vm, const char* mod, const char* name, __f_int__bool_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_str_str)(VM*, bool, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_str_str(VM* vm, const char* mod, const char* name, __f_int__bool_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_str_bool)(VM*, bool, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_str_bool(VM* vm, const char* mod, const char* name, __f_int__bool_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_bool_int)(VM*, bool, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_bool_int(VM* vm, const char* mod, const char* name, __f_int__bool_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_bool_float)(VM*, bool, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_bool_float(VM* vm, const char* mod, const char* name, __f_int__bool_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_bool_str)(VM*, bool, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_bool_str(VM* vm, const char* mod, const char* name, __f_int__bool_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef i64 (*__f_int__bool_bool_bool)(VM*, bool, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_int__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_int__bool_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        i64 ret = f(vm, _0, _1, _2);
-        return vm->PyInt(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_int_int)(VM*, i64, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__int_int_int(VM* vm, const char* mod, const char* name, __f_float__int_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_int_float)(VM*, i64, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__int_int_float(VM* vm, const char* mod, const char* name, __f_float__int_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_int_str)(VM*, i64, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__int_int_str(VM* vm, const char* mod, const char* name, __f_float__int_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_int_bool)(VM*, i64, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__int_int_bool(VM* vm, const char* mod, const char* name, __f_float__int_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_float_int)(VM*, i64, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__int_float_int(VM* vm, const char* mod, const char* name, __f_float__int_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_float_float)(VM*, i64, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__int_float_float(VM* vm, const char* mod, const char* name, __f_float__int_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_float_str)(VM*, i64, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__int_float_str(VM* vm, const char* mod, const char* name, __f_float__int_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_float_bool)(VM*, i64, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__int_float_bool(VM* vm, const char* mod, const char* name, __f_float__int_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_str_int)(VM*, i64, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__int_str_int(VM* vm, const char* mod, const char* name, __f_float__int_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_str_float)(VM*, i64, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__int_str_float(VM* vm, const char* mod, const char* name, __f_float__int_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_str_str)(VM*, i64, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__int_str_str(VM* vm, const char* mod, const char* name, __f_float__int_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_str_bool)(VM*, i64, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__int_str_bool(VM* vm, const char* mod, const char* name, __f_float__int_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_bool_int)(VM*, i64, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__int_bool_int(VM* vm, const char* mod, const char* name, __f_float__int_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_bool_float)(VM*, i64, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__int_bool_float(VM* vm, const char* mod, const char* name, __f_float__int_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_bool_str)(VM*, i64, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__int_bool_str(VM* vm, const char* mod, const char* name, __f_float__int_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__int_bool_bool)(VM*, i64, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__int_bool_bool(VM* vm, const char* mod, const char* name, __f_float__int_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_int_int)(VM*, f64, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__float_int_int(VM* vm, const char* mod, const char* name, __f_float__float_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_int_float)(VM*, f64, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__float_int_float(VM* vm, const char* mod, const char* name, __f_float__float_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_int_str)(VM*, f64, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__float_int_str(VM* vm, const char* mod, const char* name, __f_float__float_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_int_bool)(VM*, f64, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__float_int_bool(VM* vm, const char* mod, const char* name, __f_float__float_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_float_int)(VM*, f64, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__float_float_int(VM* vm, const char* mod, const char* name, __f_float__float_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_float_float)(VM*, f64, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__float_float_float(VM* vm, const char* mod, const char* name, __f_float__float_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_float_str)(VM*, f64, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__float_float_str(VM* vm, const char* mod, const char* name, __f_float__float_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_float_bool)(VM*, f64, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__float_float_bool(VM* vm, const char* mod, const char* name, __f_float__float_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_str_int)(VM*, f64, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__float_str_int(VM* vm, const char* mod, const char* name, __f_float__float_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_str_float)(VM*, f64, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__float_str_float(VM* vm, const char* mod, const char* name, __f_float__float_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_str_str)(VM*, f64, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__float_str_str(VM* vm, const char* mod, const char* name, __f_float__float_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_str_bool)(VM*, f64, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__float_str_bool(VM* vm, const char* mod, const char* name, __f_float__float_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_bool_int)(VM*, f64, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__float_bool_int(VM* vm, const char* mod, const char* name, __f_float__float_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_bool_float)(VM*, f64, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__float_bool_float(VM* vm, const char* mod, const char* name, __f_float__float_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_bool_str)(VM*, f64, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__float_bool_str(VM* vm, const char* mod, const char* name, __f_float__float_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__float_bool_bool)(VM*, f64, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__float_bool_bool(VM* vm, const char* mod, const char* name, __f_float__float_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_int_int)(VM*, const char*, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__str_int_int(VM* vm, const char* mod, const char* name, __f_float__str_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_int_float)(VM*, const char*, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__str_int_float(VM* vm, const char* mod, const char* name, __f_float__str_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_int_str)(VM*, const char*, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__str_int_str(VM* vm, const char* mod, const char* name, __f_float__str_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_int_bool)(VM*, const char*, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__str_int_bool(VM* vm, const char* mod, const char* name, __f_float__str_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_float_int)(VM*, const char*, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__str_float_int(VM* vm, const char* mod, const char* name, __f_float__str_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_float_float)(VM*, const char*, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__str_float_float(VM* vm, const char* mod, const char* name, __f_float__str_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_float_str)(VM*, const char*, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__str_float_str(VM* vm, const char* mod, const char* name, __f_float__str_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_float_bool)(VM*, const char*, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__str_float_bool(VM* vm, const char* mod, const char* name, __f_float__str_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_str_int)(VM*, const char*, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__str_str_int(VM* vm, const char* mod, const char* name, __f_float__str_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_str_float)(VM*, const char*, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__str_str_float(VM* vm, const char* mod, const char* name, __f_float__str_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_str_str)(VM*, const char*, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__str_str_str(VM* vm, const char* mod, const char* name, __f_float__str_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_str_bool)(VM*, const char*, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__str_str_bool(VM* vm, const char* mod, const char* name, __f_float__str_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_bool_int)(VM*, const char*, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__str_bool_int(VM* vm, const char* mod, const char* name, __f_float__str_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_bool_float)(VM*, const char*, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__str_bool_float(VM* vm, const char* mod, const char* name, __f_float__str_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_bool_str)(VM*, const char*, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__str_bool_str(VM* vm, const char* mod, const char* name, __f_float__str_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__str_bool_bool)(VM*, const char*, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__str_bool_bool(VM* vm, const char* mod, const char* name, __f_float__str_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_int_int)(VM*, bool, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_int_int(VM* vm, const char* mod, const char* name, __f_float__bool_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_int_float)(VM*, bool, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_int_float(VM* vm, const char* mod, const char* name, __f_float__bool_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_int_str)(VM*, bool, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_int_str(VM* vm, const char* mod, const char* name, __f_float__bool_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_int_bool)(VM*, bool, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_int_bool(VM* vm, const char* mod, const char* name, __f_float__bool_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_float_int)(VM*, bool, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_float_int(VM* vm, const char* mod, const char* name, __f_float__bool_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_float_float)(VM*, bool, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_float_float(VM* vm, const char* mod, const char* name, __f_float__bool_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_float_str)(VM*, bool, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_float_str(VM* vm, const char* mod, const char* name, __f_float__bool_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_float_bool)(VM*, bool, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_float_bool(VM* vm, const char* mod, const char* name, __f_float__bool_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_str_int)(VM*, bool, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_str_int(VM* vm, const char* mod, const char* name, __f_float__bool_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_str_float)(VM*, bool, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_str_float(VM* vm, const char* mod, const char* name, __f_float__bool_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_str_str)(VM*, bool, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_str_str(VM* vm, const char* mod, const char* name, __f_float__bool_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_str_bool)(VM*, bool, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_str_bool(VM* vm, const char* mod, const char* name, __f_float__bool_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_bool_int)(VM*, bool, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_bool_int(VM* vm, const char* mod, const char* name, __f_float__bool_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_bool_float)(VM*, bool, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_bool_float(VM* vm, const char* mod, const char* name, __f_float__bool_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_bool_str)(VM*, bool, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_bool_str(VM* vm, const char* mod, const char* name, __f_float__bool_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef f64 (*__f_float__bool_bool_bool)(VM*, bool, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_float__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_float__bool_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f64 ret = f(vm, _0, _1, _2);
-        return vm->PyFloat(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_int_int)(VM*, i64, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__int_int_int(VM* vm, const char* mod, const char* name, __f_str__int_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_int_float)(VM*, i64, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__int_int_float(VM* vm, const char* mod, const char* name, __f_str__int_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_int_str)(VM*, i64, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__int_int_str(VM* vm, const char* mod, const char* name, __f_str__int_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_int_bool)(VM*, i64, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__int_int_bool(VM* vm, const char* mod, const char* name, __f_str__int_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_float_int)(VM*, i64, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__int_float_int(VM* vm, const char* mod, const char* name, __f_str__int_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_float_float)(VM*, i64, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__int_float_float(VM* vm, const char* mod, const char* name, __f_str__int_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_float_str)(VM*, i64, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__int_float_str(VM* vm, const char* mod, const char* name, __f_str__int_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_float_bool)(VM*, i64, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__int_float_bool(VM* vm, const char* mod, const char* name, __f_str__int_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_str_int)(VM*, i64, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__int_str_int(VM* vm, const char* mod, const char* name, __f_str__int_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_str_float)(VM*, i64, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__int_str_float(VM* vm, const char* mod, const char* name, __f_str__int_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_str_str)(VM*, i64, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__int_str_str(VM* vm, const char* mod, const char* name, __f_str__int_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_str_bool)(VM*, i64, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__int_str_bool(VM* vm, const char* mod, const char* name, __f_str__int_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_bool_int)(VM*, i64, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__int_bool_int(VM* vm, const char* mod, const char* name, __f_str__int_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_bool_float)(VM*, i64, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__int_bool_float(VM* vm, const char* mod, const char* name, __f_str__int_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_bool_str)(VM*, i64, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__int_bool_str(VM* vm, const char* mod, const char* name, __f_str__int_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__int_bool_bool)(VM*, i64, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__int_bool_bool(VM* vm, const char* mod, const char* name, __f_str__int_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_int_int)(VM*, f64, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__float_int_int(VM* vm, const char* mod, const char* name, __f_str__float_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_int_float)(VM*, f64, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__float_int_float(VM* vm, const char* mod, const char* name, __f_str__float_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_int_str)(VM*, f64, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__float_int_str(VM* vm, const char* mod, const char* name, __f_str__float_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_int_bool)(VM*, f64, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__float_int_bool(VM* vm, const char* mod, const char* name, __f_str__float_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_float_int)(VM*, f64, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__float_float_int(VM* vm, const char* mod, const char* name, __f_str__float_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_float_float)(VM*, f64, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__float_float_float(VM* vm, const char* mod, const char* name, __f_str__float_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_float_str)(VM*, f64, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__float_float_str(VM* vm, const char* mod, const char* name, __f_str__float_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_float_bool)(VM*, f64, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__float_float_bool(VM* vm, const char* mod, const char* name, __f_str__float_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_str_int)(VM*, f64, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__float_str_int(VM* vm, const char* mod, const char* name, __f_str__float_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_str_float)(VM*, f64, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__float_str_float(VM* vm, const char* mod, const char* name, __f_str__float_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_str_str)(VM*, f64, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__float_str_str(VM* vm, const char* mod, const char* name, __f_str__float_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_str_bool)(VM*, f64, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__float_str_bool(VM* vm, const char* mod, const char* name, __f_str__float_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_bool_int)(VM*, f64, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__float_bool_int(VM* vm, const char* mod, const char* name, __f_str__float_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_bool_float)(VM*, f64, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__float_bool_float(VM* vm, const char* mod, const char* name, __f_str__float_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_bool_str)(VM*, f64, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__float_bool_str(VM* vm, const char* mod, const char* name, __f_str__float_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__float_bool_bool)(VM*, f64, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__float_bool_bool(VM* vm, const char* mod, const char* name, __f_str__float_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_int_int)(VM*, const char*, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__str_int_int(VM* vm, const char* mod, const char* name, __f_str__str_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_int_float)(VM*, const char*, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__str_int_float(VM* vm, const char* mod, const char* name, __f_str__str_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_int_str)(VM*, const char*, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__str_int_str(VM* vm, const char* mod, const char* name, __f_str__str_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_int_bool)(VM*, const char*, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__str_int_bool(VM* vm, const char* mod, const char* name, __f_str__str_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_float_int)(VM*, const char*, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__str_float_int(VM* vm, const char* mod, const char* name, __f_str__str_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_float_float)(VM*, const char*, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__str_float_float(VM* vm, const char* mod, const char* name, __f_str__str_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_float_str)(VM*, const char*, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__str_float_str(VM* vm, const char* mod, const char* name, __f_str__str_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_float_bool)(VM*, const char*, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__str_float_bool(VM* vm, const char* mod, const char* name, __f_str__str_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_str_int)(VM*, const char*, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__str_str_int(VM* vm, const char* mod, const char* name, __f_str__str_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_str_float)(VM*, const char*, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__str_str_float(VM* vm, const char* mod, const char* name, __f_str__str_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_str_str)(VM*, const char*, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__str_str_str(VM* vm, const char* mod, const char* name, __f_str__str_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_str_bool)(VM*, const char*, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__str_str_bool(VM* vm, const char* mod, const char* name, __f_str__str_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_bool_int)(VM*, const char*, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__str_bool_int(VM* vm, const char* mod, const char* name, __f_str__str_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_bool_float)(VM*, const char*, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__str_bool_float(VM* vm, const char* mod, const char* name, __f_str__str_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_bool_str)(VM*, const char*, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__str_bool_str(VM* vm, const char* mod, const char* name, __f_str__str_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__str_bool_bool)(VM*, const char*, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__str_bool_bool(VM* vm, const char* mod, const char* name, __f_str__str_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_int_int)(VM*, bool, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_int_int(VM* vm, const char* mod, const char* name, __f_str__bool_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_int_float)(VM*, bool, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_int_float(VM* vm, const char* mod, const char* name, __f_str__bool_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_int_str)(VM*, bool, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_int_str(VM* vm, const char* mod, const char* name, __f_str__bool_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_int_bool)(VM*, bool, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_int_bool(VM* vm, const char* mod, const char* name, __f_str__bool_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_float_int)(VM*, bool, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_float_int(VM* vm, const char* mod, const char* name, __f_str__bool_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_float_float)(VM*, bool, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_float_float(VM* vm, const char* mod, const char* name, __f_str__bool_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_float_str)(VM*, bool, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_float_str(VM* vm, const char* mod, const char* name, __f_str__bool_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_float_bool)(VM*, bool, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_float_bool(VM* vm, const char* mod, const char* name, __f_str__bool_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_str_int)(VM*, bool, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_str_int(VM* vm, const char* mod, const char* name, __f_str__bool_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_str_float)(VM*, bool, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_str_float(VM* vm, const char* mod, const char* name, __f_str__bool_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_str_str)(VM*, bool, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_str_str(VM* vm, const char* mod, const char* name, __f_str__bool_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_str_bool)(VM*, bool, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_str_bool(VM* vm, const char* mod, const char* name, __f_str__bool_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_bool_int)(VM*, bool, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_bool_int(VM* vm, const char* mod, const char* name, __f_str__bool_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_bool_float)(VM*, bool, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_bool_float(VM* vm, const char* mod, const char* name, __f_str__bool_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_bool_str)(VM*, bool, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_bool_str(VM* vm, const char* mod, const char* name, __f_str__bool_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef const char* (*__f_str__bool_bool_bool)(VM*, bool, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_str__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_str__bool_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        const char* ret = f(vm, _0, _1, _2);
-        return vm->PyStr(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_int_int)(VM*, i64, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_int_int(VM* vm, const char* mod, const char* name, __f_bool__int_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_int_float)(VM*, i64, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_int_float(VM* vm, const char* mod, const char* name, __f_bool__int_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_int_str)(VM*, i64, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_int_str(VM* vm, const char* mod, const char* name, __f_bool__int_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_int_bool)(VM*, i64, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_int_bool(VM* vm, const char* mod, const char* name, __f_bool__int_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_float_int)(VM*, i64, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_float_int(VM* vm, const char* mod, const char* name, __f_bool__int_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_float_float)(VM*, i64, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_float_float(VM* vm, const char* mod, const char* name, __f_bool__int_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_float_str)(VM*, i64, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_float_str(VM* vm, const char* mod, const char* name, __f_bool__int_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_float_bool)(VM*, i64, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_float_bool(VM* vm, const char* mod, const char* name, __f_bool__int_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_str_int)(VM*, i64, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_str_int(VM* vm, const char* mod, const char* name, __f_bool__int_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_str_float)(VM*, i64, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_str_float(VM* vm, const char* mod, const char* name, __f_bool__int_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_str_str)(VM*, i64, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_str_str(VM* vm, const char* mod, const char* name, __f_bool__int_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_str_bool)(VM*, i64, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_str_bool(VM* vm, const char* mod, const char* name, __f_bool__int_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_bool_int)(VM*, i64, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_bool_int(VM* vm, const char* mod, const char* name, __f_bool__int_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_bool_float)(VM*, i64, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_bool_float(VM* vm, const char* mod, const char* name, __f_bool__int_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_bool_str)(VM*, i64, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_bool_str(VM* vm, const char* mod, const char* name, __f_bool__int_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__int_bool_bool)(VM*, i64, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__int_bool_bool(VM* vm, const char* mod, const char* name, __f_bool__int_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_int_int)(VM*, f64, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_int_int(VM* vm, const char* mod, const char* name, __f_bool__float_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_int_float)(VM*, f64, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_int_float(VM* vm, const char* mod, const char* name, __f_bool__float_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_int_str)(VM*, f64, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_int_str(VM* vm, const char* mod, const char* name, __f_bool__float_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_int_bool)(VM*, f64, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_int_bool(VM* vm, const char* mod, const char* name, __f_bool__float_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_float_int)(VM*, f64, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_float_int(VM* vm, const char* mod, const char* name, __f_bool__float_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_float_float)(VM*, f64, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_float_float(VM* vm, const char* mod, const char* name, __f_bool__float_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_float_str)(VM*, f64, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_float_str(VM* vm, const char* mod, const char* name, __f_bool__float_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_float_bool)(VM*, f64, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_float_bool(VM* vm, const char* mod, const char* name, __f_bool__float_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_str_int)(VM*, f64, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_str_int(VM* vm, const char* mod, const char* name, __f_bool__float_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_str_float)(VM*, f64, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_str_float(VM* vm, const char* mod, const char* name, __f_bool__float_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_str_str)(VM*, f64, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_str_str(VM* vm, const char* mod, const char* name, __f_bool__float_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_str_bool)(VM*, f64, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_str_bool(VM* vm, const char* mod, const char* name, __f_bool__float_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_bool_int)(VM*, f64, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_bool_int(VM* vm, const char* mod, const char* name, __f_bool__float_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_bool_float)(VM*, f64, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_bool_float(VM* vm, const char* mod, const char* name, __f_bool__float_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_bool_str)(VM*, f64, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_bool_str(VM* vm, const char* mod, const char* name, __f_bool__float_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__float_bool_bool)(VM*, f64, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__float_bool_bool(VM* vm, const char* mod, const char* name, __f_bool__float_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_int_int)(VM*, const char*, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_int_int(VM* vm, const char* mod, const char* name, __f_bool__str_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_int_float)(VM*, const char*, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_int_float(VM* vm, const char* mod, const char* name, __f_bool__str_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_int_str)(VM*, const char*, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_int_str(VM* vm, const char* mod, const char* name, __f_bool__str_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_int_bool)(VM*, const char*, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_int_bool(VM* vm, const char* mod, const char* name, __f_bool__str_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_float_int)(VM*, const char*, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_float_int(VM* vm, const char* mod, const char* name, __f_bool__str_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_float_float)(VM*, const char*, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_float_float(VM* vm, const char* mod, const char* name, __f_bool__str_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_float_str)(VM*, const char*, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_float_str(VM* vm, const char* mod, const char* name, __f_bool__str_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_float_bool)(VM*, const char*, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_float_bool(VM* vm, const char* mod, const char* name, __f_bool__str_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_str_int)(VM*, const char*, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_str_int(VM* vm, const char* mod, const char* name, __f_bool__str_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_str_float)(VM*, const char*, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_str_float(VM* vm, const char* mod, const char* name, __f_bool__str_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_str_str)(VM*, const char*, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_str_str(VM* vm, const char* mod, const char* name, __f_bool__str_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_str_bool)(VM*, const char*, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_str_bool(VM* vm, const char* mod, const char* name, __f_bool__str_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_bool_int)(VM*, const char*, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_bool_int(VM* vm, const char* mod, const char* name, __f_bool__str_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_bool_float)(VM*, const char*, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_bool_float(VM* vm, const char* mod, const char* name, __f_bool__str_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_bool_str)(VM*, const char*, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_bool_str(VM* vm, const char* mod, const char* name, __f_bool__str_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__str_bool_bool)(VM*, const char*, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__str_bool_bool(VM* vm, const char* mod, const char* name, __f_bool__str_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_int_int)(VM*, bool, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_int_int(VM* vm, const char* mod, const char* name, __f_bool__bool_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_int_float)(VM*, bool, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_int_float(VM* vm, const char* mod, const char* name, __f_bool__bool_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_int_str)(VM*, bool, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_int_str(VM* vm, const char* mod, const char* name, __f_bool__bool_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_int_bool)(VM*, bool, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_int_bool(VM* vm, const char* mod, const char* name, __f_bool__bool_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_float_int)(VM*, bool, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_float_int(VM* vm, const char* mod, const char* name, __f_bool__bool_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_float_float)(VM*, bool, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_float_float(VM* vm, const char* mod, const char* name, __f_bool__bool_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_float_str)(VM*, bool, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_float_str(VM* vm, const char* mod, const char* name, __f_bool__bool_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_float_bool)(VM*, bool, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_float_bool(VM* vm, const char* mod, const char* name, __f_bool__bool_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_str_int)(VM*, bool, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_str_int(VM* vm, const char* mod, const char* name, __f_bool__bool_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_str_float)(VM*, bool, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_str_float(VM* vm, const char* mod, const char* name, __f_bool__bool_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_str_str)(VM*, bool, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_str_str(VM* vm, const char* mod, const char* name, __f_bool__bool_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_str_bool)(VM*, bool, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_str_bool(VM* vm, const char* mod, const char* name, __f_bool__bool_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_bool_int)(VM*, bool, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_bool_int(VM* vm, const char* mod, const char* name, __f_bool__bool_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_bool_float)(VM*, bool, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_bool_float(VM* vm, const char* mod, const char* name, __f_bool__bool_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_bool_str)(VM*, bool, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_bool_str(VM* vm, const char* mod, const char* name, __f_bool__bool_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef bool (*__f_bool__bool_bool_bool)(VM*, bool, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_bool__bool_bool_bool(VM* vm, const char* mod, const char* name, __f_bool__bool_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        bool ret = f(vm, _0, _1, _2);
-        return vm->PyBool(ret);
-    });
-}
-
-typedef void (*__f_None__int_int_int)(VM*, i64, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__int_int_int(VM* vm, const char* mod, const char* name, __f_None__int_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_int_float)(VM*, i64, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__int_int_float(VM* vm, const char* mod, const char* name, __f_None__int_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_int_str)(VM*, i64, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__int_int_str(VM* vm, const char* mod, const char* name, __f_None__int_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_int_bool)(VM*, i64, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__int_int_bool(VM* vm, const char* mod, const char* name, __f_None__int_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_float_int)(VM*, i64, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__int_float_int(VM* vm, const char* mod, const char* name, __f_None__int_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_float_float)(VM*, i64, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__int_float_float(VM* vm, const char* mod, const char* name, __f_None__int_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_float_str)(VM*, i64, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__int_float_str(VM* vm, const char* mod, const char* name, __f_None__int_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_float_bool)(VM*, i64, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__int_float_bool(VM* vm, const char* mod, const char* name, __f_None__int_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_str_int)(VM*, i64, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__int_str_int(VM* vm, const char* mod, const char* name, __f_None__int_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_str_float)(VM*, i64, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__int_str_float(VM* vm, const char* mod, const char* name, __f_None__int_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_str_str)(VM*, i64, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__int_str_str(VM* vm, const char* mod, const char* name, __f_None__int_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_str_bool)(VM*, i64, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__int_str_bool(VM* vm, const char* mod, const char* name, __f_None__int_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_bool_int)(VM*, i64, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__int_bool_int(VM* vm, const char* mod, const char* name, __f_None__int_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_bool_float)(VM*, i64, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__int_bool_float(VM* vm, const char* mod, const char* name, __f_None__int_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_bool_str)(VM*, i64, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__int_bool_str(VM* vm, const char* mod, const char* name, __f_None__int_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__int_bool_bool)(VM*, i64, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__int_bool_bool(VM* vm, const char* mod, const char* name, __f_None__int_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        i64 _0 = vm->PyInt_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_int_int)(VM*, f64, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__float_int_int(VM* vm, const char* mod, const char* name, __f_None__float_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_int_float)(VM*, f64, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__float_int_float(VM* vm, const char* mod, const char* name, __f_None__float_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_int_str)(VM*, f64, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__float_int_str(VM* vm, const char* mod, const char* name, __f_None__float_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_int_bool)(VM*, f64, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__float_int_bool(VM* vm, const char* mod, const char* name, __f_None__float_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_float_int)(VM*, f64, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__float_float_int(VM* vm, const char* mod, const char* name, __f_None__float_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_float_float)(VM*, f64, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__float_float_float(VM* vm, const char* mod, const char* name, __f_None__float_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_float_str)(VM*, f64, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__float_float_str(VM* vm, const char* mod, const char* name, __f_None__float_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_float_bool)(VM*, f64, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__float_float_bool(VM* vm, const char* mod, const char* name, __f_None__float_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_str_int)(VM*, f64, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__float_str_int(VM* vm, const char* mod, const char* name, __f_None__float_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_str_float)(VM*, f64, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__float_str_float(VM* vm, const char* mod, const char* name, __f_None__float_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_str_str)(VM*, f64, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__float_str_str(VM* vm, const char* mod, const char* name, __f_None__float_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_str_bool)(VM*, f64, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__float_str_bool(VM* vm, const char* mod, const char* name, __f_None__float_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_bool_int)(VM*, f64, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__float_bool_int(VM* vm, const char* mod, const char* name, __f_None__float_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_bool_float)(VM*, f64, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__float_bool_float(VM* vm, const char* mod, const char* name, __f_None__float_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_bool_str)(VM*, f64, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__float_bool_str(VM* vm, const char* mod, const char* name, __f_None__float_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__float_bool_bool)(VM*, f64, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__float_bool_bool(VM* vm, const char* mod, const char* name, __f_None__float_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        f64 _0 = vm->PyFloat_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_int_int)(VM*, const char*, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__str_int_int(VM* vm, const char* mod, const char* name, __f_None__str_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_int_float)(VM*, const char*, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__str_int_float(VM* vm, const char* mod, const char* name, __f_None__str_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_int_str)(VM*, const char*, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__str_int_str(VM* vm, const char* mod, const char* name, __f_None__str_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_int_bool)(VM*, const char*, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__str_int_bool(VM* vm, const char* mod, const char* name, __f_None__str_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_float_int)(VM*, const char*, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__str_float_int(VM* vm, const char* mod, const char* name, __f_None__str_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_float_float)(VM*, const char*, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__str_float_float(VM* vm, const char* mod, const char* name, __f_None__str_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_float_str)(VM*, const char*, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__str_float_str(VM* vm, const char* mod, const char* name, __f_None__str_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_float_bool)(VM*, const char*, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__str_float_bool(VM* vm, const char* mod, const char* name, __f_None__str_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_str_int)(VM*, const char*, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__str_str_int(VM* vm, const char* mod, const char* name, __f_None__str_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_str_float)(VM*, const char*, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__str_str_float(VM* vm, const char* mod, const char* name, __f_None__str_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_str_str)(VM*, const char*, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__str_str_str(VM* vm, const char* mod, const char* name, __f_None__str_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_str_bool)(VM*, const char*, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__str_str_bool(VM* vm, const char* mod, const char* name, __f_None__str_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_bool_int)(VM*, const char*, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__str_bool_int(VM* vm, const char* mod, const char* name, __f_None__str_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_bool_float)(VM*, const char*, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__str_bool_float(VM* vm, const char* mod, const char* name, __f_None__str_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_bool_str)(VM*, const char*, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__str_bool_str(VM* vm, const char* mod, const char* name, __f_None__str_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__str_bool_bool)(VM*, const char*, bool, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__str_bool_bool(VM* vm, const char* mod, const char* name, __f_None__str_bool_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        const char* _0 = vm->PyStr_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_int_int)(VM*, bool, i64, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_int_int(VM* vm, const char* mod, const char* name, __f_None__bool_int_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_int_float)(VM*, bool, i64, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_int_float(VM* vm, const char* mod, const char* name, __f_None__bool_int_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_int_str)(VM*, bool, i64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_int_str(VM* vm, const char* mod, const char* name, __f_None__bool_int_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_int_bool)(VM*, bool, i64, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_int_bool(VM* vm, const char* mod, const char* name, __f_None__bool_int_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        i64 _1 = vm->PyInt_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_float_int)(VM*, bool, f64, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_float_int(VM* vm, const char* mod, const char* name, __f_None__bool_float_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_float_float)(VM*, bool, f64, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_float_float(VM* vm, const char* mod, const char* name, __f_None__bool_float_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_float_str)(VM*, bool, f64, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_float_str(VM* vm, const char* mod, const char* name, __f_None__bool_float_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_float_bool)(VM*, bool, f64, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_float_bool(VM* vm, const char* mod, const char* name, __f_None__bool_float_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        f64 _1 = vm->PyFloat_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_str_int)(VM*, bool, const char*, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_str_int(VM* vm, const char* mod, const char* name, __f_None__bool_str_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_str_float)(VM*, bool, const char*, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_str_float(VM* vm, const char* mod, const char* name, __f_None__bool_str_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_str_str)(VM*, bool, const char*, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_str_str(VM* vm, const char* mod, const char* name, __f_None__bool_str_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        const char* _2 = vm->PyStr_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_str_bool)(VM*, bool, const char*, bool);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_str_bool(VM* vm, const char* mod, const char* name, __f_None__bool_str_bool f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        const char* _1 = vm->PyStr_AS_C(args[1]);
-        bool _2 = vm->PyBool_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_bool_int)(VM*, bool, bool, i64);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_bool_int(VM* vm, const char* mod, const char* name, __f_None__bool_bool_int f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        i64 _2 = vm->PyInt_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_bool_float)(VM*, bool, bool, f64);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_bool_float(VM* vm, const char* mod, const char* name, __f_None__bool_bool_float f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
-        f64 _2 = vm->PyFloat_AS_C(args[2]);
-        f(vm, _0, _1, _2);
-        return vm->None;
-    });
-}
-
-typedef void (*__f_None__bool_bool_str)(VM*, bool, bool, const char*);
-__EXPORT
-void pkpy_vm_bind__f_None__bool_bool_str(VM* vm, const char* mod, const char* name, __f_None__bool_bool_str f) {
-    PyVar obj = vm->new_module_if_not_existed(mod);
-    vm->bindFunc<3>(obj, name, [f](VM* vm, const pkpy::ArgList& args) {
-        bool _0 = vm->PyBool_AS_C(args[0]);
-        bool _1 = vm->PyBool_AS_C(args[1]);
         const char* _2 = vm->PyStr_AS_C(args[2]);
         f(vm, _0, _1, _2);
         return vm->None;