txlyre 1 өдөр өмнө
parent
commit
05b09b05dc
1 өөрчлөгдсөн 327 нэмэгдсэн , 14 устгасан
  1. 327 14
      qistd.c

+ 327 - 14
qistd.c

@@ -1,4 +1,3 @@
-#include "qirt.h"
 qi_value_t *__qistd0(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "l", qi_list_index(pargs, 0));
 return qi_index(state, qi_get(state, "l"), qi_make_number(state, 0));return state->nil;
@@ -73,19 +72,31 @@ return list;
 }
 qi_value_t *__qistd5(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "x", qi_list_index(pargs, 0));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_in(state, qi_call(state, qi_get(state, "type"), __qistd6(state)), qi_make_tuple(state, __qistd7(state))))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: list, string or bytes, but got: "), qi_call(state, qi_get(state, "type"), __qistd8(state))));}
+qi_old_scope(state);
 qi_decl(state, "r", qi_make_list(state, NULL));
+qi_new_scope(state);
 qi_decl(state, "i", qi_sub(state, qi_call(state, qi_get(state, "len"), __qistd10(state)), qi_make_number(state, 1)));
 while (_qi_truthy(state, qi_ge(state, qi_get(state, "i"), qi_make_number(state, 0)))) {
 (void)(qi_call(state, qi_get(state, "list_push"), __qistd11(state)));__continue9:;
 qi_set(state, false, "i", qi_sub(state, qi_get(state, "i"), state->one));
 }
 __break9:;
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "type"), __qistd12(state)), qi_make_string(state, "string")))) {
+qi_old_scope(state);
 return qi_call(state, qi_get(state, "list_join"), __qistd13(state));} else {
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "type"), __qistd14(state)), qi_make_string(state, "bytes")))) {
-return qi_call(state, qi_get(state, "bytes"), __qistd15(state));}}
+qi_old_scope(state);
+qi_old_scope(state);
+return qi_call(state, qi_get(state, "bytes"), __qistd15(state));}
+qi_old_scope(state);
+}
+qi_old_scope(state);
 return qi_get(state, "r");
 return state->nil;
 }
@@ -151,10 +162,12 @@ qi_value_t *__qistd16(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "f", qi_list_index(pargs, 0));
 qi_decl(state, "s", state->nil);
 qi_decl(state, "t", state->nil);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_ge(state, qi_call(state, qi_get(state, "len"), __qistd17(state)), qi_make_number(state, 3)))) {
 (void)(qi_set(state, false, "t", qi_index(state, qi_get(state, "arguments"), qi_make_number(state, 1))));
 (void)(qi_set(state, false, "s", qi_index(state, qi_get(state, "arguments"), qi_make_number(state, 2))));
 } else {
+qi_new_scope(state);
 if (_qi_truthy(state, qi_ge(state, qi_call(state, qi_get(state, "len"), __qistd18(state)), qi_make_number(state, 2)))) {
 (void)(qi_set(state, false, "t", qi_index(state, qi_get(state, "arguments"), qi_make_number(state, 1))));
 (void)(qi_set(state, false, "s", qi_make_number(state, 1)));
@@ -162,22 +175,36 @@ if (_qi_truthy(state, qi_ge(state, qi_call(state, qi_get(state, "len"), __qistd1
 (void)(qi_set(state, false, "t", qi_get(state, "f")));
 (void)(qi_set(state, false, "f", qi_make_number(state, 0)));
 (void)(qi_set(state, false, "s", qi_make_number(state, 1)));
-}}
+}
+qi_old_scope(state);
+}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd19(state)), qi_make_string(state, "number")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: number, but got: "), qi_call(state, qi_get(state, "type"), __qistd20(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd21(state)), qi_make_string(state, "number")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected second argument to be: number, but got: "), qi_call(state, qi_get(state, "type"), __qistd22(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd23(state)), qi_make_string(state, "number")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected third argument to be: number, but got: "), qi_call(state, qi_get(state, "type"), __qistd24(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_gt(state, qi_get(state, "f"), qi_get(state, "t")))) {
+qi_old_scope(state);
 return qi_call(state, qi_get(state, "reverse"), __qistd25(state));}
+qi_old_scope(state);
 qi_decl(state, "r", qi_make_list(state, NULL));
+qi_new_scope(state);
 qi_decl(state, "i", qi_get(state, "f"));
 while (_qi_truthy(state, qi_lt(state, qi_get(state, "i"), qi_get(state, "t")))) {
 (void)(qi_call(state, qi_get(state, "list_push"), __qistd28(state)));__continue27:;
 qi_set(state, false, "i", qi_add(state, qi_get(state, "i"), qi_get(state, "s")));
 }
 __break27:;
+qi_old_scope(state);
 return qi_get(state, "r");
 return state->nil;
 }
@@ -262,8 +289,10 @@ return list;
 }
 qi_value_t *__qistd42(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "name", qi_list_index(pargs, 0));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd43(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: string, but got: "), qi_call(state, qi_get(state, "type"), __qistd44(state))));}
+qi_old_scope(state);
 qi_bool b = qi_find(state, qi_get(state, "name")->value.string) != NULL;
 return qi_make_boolean(state, b);
 return state->nil;
@@ -293,20 +322,29 @@ qi_value_t *__qistd45(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "first", pargc >= 3? qi_list_index(pargs, 2): qi_get(state, "false"));
 qi_decl(state, "l", qi_list_index(pargs, 0));
 qi_decl(state, "x", qi_list_index(pargs, 1));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd47(state)), qi_make_string(state, "list")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: list, but got: "), qi_call(state, qi_get(state, "type"), __qistd48(state))));}
+qi_old_scope(state);
 __label46:;
+qi_new_scope(state);
 qi_decl(state, "i", qi_make_number(state, 0));
 while (_qi_truthy(state, qi_lt(state, qi_get(state, "i"), qi_call(state, qi_get(state, "len"), __qistd50(state))))) {
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_index(state, qi_get(state, "l"), qi_get(state, "i")), qi_get(state, "x")))) {
 (void)(qi_call(state, qi_get(state, "list_delete"), __qistd51(state)));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_get(state, "first"))) {
 goto __break49;}
+qi_old_scope(state);
 goto __label46;
-}__continue49:;
+}
+qi_old_scope(state);
+__continue49:;
 qi_set(state, false, "i", qi_add(state, qi_get(state, "i"), state->one));
 }
 __break49:;
+qi_old_scope(state);
 return state->nil;
 }
 inline static qi_list_t *__qistd53(qi_state_t *state) {
@@ -346,29 +384,41 @@ return list;
 }
 qi_value_t *__qistd52(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "l", qi_list_index(pargs, 0));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd53(state)), qi_make_string(state, "list")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: list, but got: "), qi_call(state, qi_get(state, "type"), __qistd54(state))));}
+qi_old_scope(state);
 qi_decl(state, "r", state->empty_string);
 qi_decl(state, "s", state->nil);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "len"), __qistd55(state)), qi_make_number(state, 1)))) {
 (void)(qi_set(state, false, "s", state->empty_string));} else {
 (void)(qi_set(state, false, "s", qi_index(state, qi_get(state, "arguments"), qi_make_number(state, 1))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd56(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected second argument to be: string, but got: "), qi_call(state, qi_get(state, "type"), __qistd57(state))));}
+qi_old_scope(state);
 qi_decl(state, "first", qi_get(state, "true"));
+qi_new_scope(state);
 qi_value_t *__qistd59 = qi_iter(state, qi_get(state, "l"));
 qi_decl(state, "x", state->nil);
 for (qi_size_t length = _qi_length(state, __qistd59), i = 0; i < length; i++) {
 qi_set(state, false, "x", qi_index(state, __qistd59, qi_make_number(state, i)));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd60(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected sequence item to be: string, but got: "), qi_call(state, qi_get(state, "type"), __qistd61(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_and(state, qi_not_equals(state, qi_get(state, "s"), state->empty_string), qi_not(state, qi_get(state, "first"))))) {
 (void)(qi_set(state, false, "r", qi_add(state, qi_get(state, "r"), qi_get(state, "s"))));}
+qi_old_scope(state);
 (void)(qi_set(state, false, "r", qi_add(state, qi_get(state, "r"), qi_get(state, "x"))));
 (void)(qi_set(state, false, "first", qi_get(state, "false")));
 __continue58:;
 }
 __break58:;
+qi_old_scope(state);
 return qi_get(state, "r");
 return state->nil;
 }
@@ -401,10 +451,14 @@ return list;
 qi_value_t *__qistd62(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "i", qi_list_index(pargs, 1));
 qi_decl(state, "l", qi_list_index(pargs, 0));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd63(state)), qi_make_string(state, "list")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: list, but got: "), qi_call(state, qi_get(state, "type"), __qistd64(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd65(state)), qi_make_string(state, "number")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected second argument to be: number, but got: "), qi_call(state, qi_get(state, "type"), __qistd66(state))));}
+qi_old_scope(state);
 qi_decl(state, "x", qi_index(state, qi_get(state, "l"), qi_get(state, "i")));
 (void)(qi_call(state, qi_get(state, "list_delete"), __qistd67(state)));
 return qi_get(state, "x");
@@ -454,29 +508,43 @@ return list;
 qi_value_t *__qistd68(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "cmp", pargc >= 2? qi_list_index(pargs, 1): qi_make_function(state, "<anon>", 2, __qistd69, NULL));
 qi_decl(state, "l", qi_list_index(pargs, 0));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd70(state)), qi_make_string(state, "list")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: list, but got: "), qi_call(state, qi_get(state, "type"), __qistd71(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd72(state)), qi_make_string(state, "function")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected second argument to be: function, but got: "), qi_call(state, qi_get(state, "type"), __qistd73(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "len"), __qistd74(state)), qi_make_number(state, 0)))) {
+qi_old_scope(state);
 return qi_get(state, "l");}
+qi_old_scope(state);
 qi_decl(state, "z", qi_call(state, qi_get(state, "len"), __qistd75(state)));
+qi_new_scope(state);
 qi_decl(state, "i", qi_make_number(state, 0));
 while (_qi_truthy(state, qi_lt(state, qi_get(state, "i"), qi_sub(state, qi_get(state, "z"), qi_make_number(state, 1))))) {
+qi_new_scope(state);
 qi_decl(state, "j", qi_make_number(state, 0));
 while (_qi_truthy(state, qi_lt(state, qi_get(state, "j"), qi_sub(state, qi_sub(state, qi_get(state, "z"), qi_make_number(state, 1)), qi_get(state, "i"))))) {
+qi_new_scope(state);
 if (_qi_truthy(state, qi_call(state, qi_get(state, "cmp"), __qistd78(state)))) {
 qi_decl_const(state, "tmp", qi_index(state, qi_get(state, "l"), qi_get(state, "j")));
 (void)(qi_index_set(state, false, qi_get(state, "l"), qi_get(state, "j"), qi_index(state, qi_get(state, "l"), qi_add(state, qi_get(state, "j"), qi_make_number(state, 1)))));
 (void)(qi_index_set(state, false, qi_get(state, "l"), qi_add(state, qi_get(state, "j"), qi_make_number(state, 1)), qi_get(state, "tmp")));
-}__continue77:;
+}
+qi_old_scope(state);
+__continue77:;
 qi_set(state, false, "j", qi_add(state, qi_get(state, "j"), state->one));
 }
 __break77:;
+qi_old_scope(state);
 __continue76:;
 qi_set(state, false, "i", qi_add(state, qi_get(state, "i"), state->one));
 }
 __break76:;
+qi_old_scope(state);
 return qi_get(state, "l");
 return state->nil;
 }
@@ -526,10 +594,14 @@ return list;
 }
 qi_value_t *__qistd83(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "l", qi_list_index(pargs, 0));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd84(state)), qi_make_string(state, "list")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: list, but got: "), qi_call(state, qi_get(state, "type"), __qistd85(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_call(state, qi_get(state, "is_empty"), __qistd86(state)))) {
 qi_throw(state, qi_make_string(state, "shift from empty list"));}
+qi_old_scope(state);
 qi_decl(state, "a", qi_index(state, qi_get(state, "l"), qi_make_number(state, 0)));
 (void)(qi_call(state, qi_get(state, "list_delete"), __qistd87(state)));
 return qi_get(state, "a");
@@ -664,44 +736,75 @@ return list;
 }
 qi_value_t *__qistd90(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "l", qi_list_index(pargs, 0));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_in(state, qi_call(state, qi_get(state, "type"), __qistd91(state)), qi_make_tuple(state, __qistd92(state))))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: list, string or bytes, but got: "), qi_call(state, qi_get(state, "type"), __qistd93(state))));}
+qi_old_scope(state);
 qi_decl(state, "r", qi_make_list(state, NULL));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "len"), __qistd94(state)), qi_make_number(state, 2)))) {
 qi_decl(state, "f", qi_index(state, qi_get(state, "arguments"), qi_make_number(state, 1)));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd95(state)), qi_make_string(state, "number")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected second argument to be: number, but got: "), qi_call(state, qi_get(state, "type"), __qistd96(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_lt(state, qi_get(state, "f"), qi_make_number(state, 0)))) {
 (void)(qi_set(state, false, "f", qi_add(state, qi_get(state, "f"), qi_call(state, qi_get(state, "len"), __qistd97(state)))));}
+qi_old_scope(state);
+qi_new_scope(state);
 qi_decl(state, "i", qi_get(state, "f"));
 while (_qi_truthy(state, qi_lt(state, qi_get(state, "i"), qi_call(state, qi_get(state, "len"), __qistd99(state))))) {
 (void)(qi_call(state, qi_get(state, "list_push"), __qistd100(state)));__continue98:;
 qi_set(state, false, "i", qi_add(state, qi_get(state, "i"), state->one));
 }
 __break98:;
+qi_old_scope(state);
 } else {
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "len"), __qistd101(state)), qi_make_number(state, 3)))) {
 qi_decl(state, "f", qi_index(state, qi_get(state, "arguments"), qi_make_number(state, 1)));
 qi_decl(state, "t", qi_index(state, qi_get(state, "arguments"), qi_make_number(state, 2)));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd102(state)), qi_make_string(state, "number")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected second argument to be: number, but got: "), qi_call(state, qi_get(state, "type"), __qistd103(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd104(state)), qi_make_string(state, "number")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected third argument to be: number, but got: "), qi_call(state, qi_get(state, "type"), __qistd105(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_lt(state, qi_get(state, "f"), qi_make_number(state, 0)))) {
 (void)(qi_set(state, false, "f", qi_add(state, qi_get(state, "f"), qi_call(state, qi_get(state, "len"), __qistd106(state)))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_lt(state, qi_get(state, "t"), qi_make_number(state, 0)))) {
 (void)(qi_set(state, false, "t", qi_add(state, qi_get(state, "t"), qi_call(state, qi_get(state, "len"), __qistd107(state)))));}
+qi_old_scope(state);
+qi_new_scope(state);
 qi_decl(state, "i", qi_get(state, "f"));
 while (_qi_truthy(state, qi_and(state, qi_lt(state, qi_get(state, "i"), qi_call(state, qi_get(state, "len"), __qistd109(state))), qi_le(state, qi_get(state, "i"), qi_get(state, "t"))))) {
 (void)(qi_call(state, qi_get(state, "list_push"), __qistd110(state)));__continue108:;
 qi_set(state, false, "i", qi_add(state, qi_get(state, "i"), state->one));
 }
 __break108:;
-}}
+qi_old_scope(state);
+}
+qi_old_scope(state);
+}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "type"), __qistd111(state)), qi_make_string(state, "string")))) {
+qi_old_scope(state);
 return qi_call(state, qi_get(state, "list_join"), __qistd112(state));} else {
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "type"), __qistd113(state)), qi_make_string(state, "bytes")))) {
-return qi_call(state, qi_get(state, "bytes"), __qistd114(state));}}
+qi_old_scope(state);
+qi_old_scope(state);
+return qi_call(state, qi_get(state, "bytes"), __qistd114(state));}
+qi_old_scope(state);
+}
+qi_old_scope(state);
 return qi_get(state, "r");
 return state->nil;
 }
@@ -740,10 +843,15 @@ return list;
 qi_value_t *__qistd115(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "p", qi_list_index(pargs, 1));
 qi_decl(state, "s", qi_list_index(pargs, 0));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd116(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: string, but got: "), qi_call(state, qi_get(state, "type"), __qistd117(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_lt(state, qi_call(state, qi_get(state, "len"), __qistd118(state)), qi_call(state, qi_get(state, "len"), __qistd119(state))))) {
+qi_old_scope(state);
 return qi_get(state, "false");}
+qi_old_scope(state);
 return qi_equals(state, qi_call(state, qi_get(state, "slice"), __qistd120(state)), qi_get(state, "p"));
 return state->nil;
 }
@@ -786,10 +894,15 @@ return list;
 qi_value_t *__qistd122(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "p", qi_list_index(pargs, 1));
 qi_decl(state, "s", qi_list_index(pargs, 0));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd123(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: string, but got: "), qi_call(state, qi_get(state, "type"), __qistd124(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_lt(state, qi_call(state, qi_get(state, "len"), __qistd125(state)), qi_call(state, qi_get(state, "len"), __qistd126(state))))) {
+qi_old_scope(state);
 return qi_get(state, "false");}
+qi_old_scope(state);
 return qi_equals(state, qi_call(state, qi_get(state, "slice"), __qistd127(state)), qi_get(state, "p"));
 return state->nil;
 }
@@ -859,30 +972,43 @@ return list;
 }
 qi_value_t *__qistd130(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "s", qi_list_index(pargs, 0));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_or(state, qi_equals(state, qi_call(state, qi_get(state, "len"), __qistd131(state)), qi_make_number(state, 1)), qi_equals(state, qi_index(state, qi_get(state, "arguments"), qi_make_number(state, 1)), state->empty_string)))) {
+qi_old_scope(state);
 return qi_call(state, qi_get(state, "list"), __qistd132(state));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd133(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be:!string, but got: "), qi_call(state, qi_get(state, "type"), __qistd134(state))));}
+qi_old_scope(state);
 qi_decl(state, "r", qi_make_list(state, NULL));
 qi_decl(state, "d", qi_index(state, qi_get(state, "arguments"), qi_make_number(state, 1)));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd135(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected second argument to be: string, but got: "), qi_call(state, qi_get(state, "type"), __qistd136(state))));}
+qi_old_scope(state);
 qi_decl(state, "t", state->empty_string);
+qi_new_scope(state);
 qi_decl(state, "i", qi_make_number(state, 0));
 while (_qi_truthy(state, qi_lt(state, qi_get(state, "i"), qi_call(state, qi_get(state, "len"), __qistd138(state))))) {
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "slice"), __qistd139(state)), qi_get(state, "d")))) {
 (void)(qi_call(state, qi_get(state, "list_push"), __qistd141(state)));
 (void)(qi_set(state, false, "t", state->empty_string));
 (void)(qi_set(state, false, "i", qi_add(state, qi_get(state, "i"), qi_sub(state, qi_call(state, qi_get(state, "len"), __qistd142(state)), qi_make_number(state, 1)))));
 goto __continue137;
 }
+qi_old_scope(state);
 (void)(qi_set(state, false, "t", qi_add(state, qi_get(state, "t"), qi_index(state, qi_get(state, "s"), qi_get(state, "i")))));
 __continue137:;
 qi_set(state, false, "i", qi_add(state, qi_get(state, "i"), state->one));
 }
 __break137:;
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_get(state, "t"), state->empty_string))) {
 (void)(qi_call(state, qi_get(state, "list_push"), __qistd143(state)));}
+qi_old_scope(state);
 return qi_get(state, "r");
 return state->nil;
 }
@@ -942,25 +1068,35 @@ qi_value_t *__qistd144(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "b", qi_list_index(pargs, 2));
 qi_decl(state, "s", qi_list_index(pargs, 0));
 qi_decl(state, "w", qi_list_index(pargs, 1));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd145(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: string, but got: "), qi_call(state, qi_get(state, "type"), __qistd146(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd147(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected second argument to be: string, but got: "), qi_call(state, qi_get(state, "type"), __qistd148(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd149(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected third argument to be: string, but got: "), qi_call(state, qi_get(state, "type"), __qistd150(state))));}
+qi_old_scope(state);
 qi_decl(state, "r", state->empty_string);
+qi_new_scope(state);
 qi_decl(state, "i", qi_make_number(state, 0));
 while (_qi_truthy(state, qi_lt(state, qi_get(state, "i"), qi_call(state, qi_get(state, "len"), __qistd152(state))))) {
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "slice"), __qistd153(state)), qi_get(state, "w")))) {
 (void)(qi_set(state, false, "r", qi_add(state, qi_get(state, "r"), qi_get(state, "b"))));
 (void)(qi_set(state, false, "i", qi_add(state, qi_get(state, "i"), qi_sub(state, qi_call(state, qi_get(state, "len"), __qistd155(state)), qi_make_number(state, 1)))));
 goto __continue151;
 }
+qi_old_scope(state);
 (void)(qi_set(state, false, "r", qi_add(state, qi_get(state, "r"), qi_index(state, qi_get(state, "s"), qi_get(state, "i")))));
 __continue151:;
 qi_set(state, false, "i", qi_add(state, qi_get(state, "i"), state->one));
 }
 __break151:;
+qi_old_scope(state);
 return qi_get(state, "r");
 return state->nil;
 }
@@ -982,9 +1118,12 @@ return list;
 }
 qi_value_t *__qistd156(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "t", qi_list_index(pargs, 0));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd157(state)), qi_make_string(state, "table")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: table, but got: "), qi_call(state, qi_get(state, "type"), __qistd158(state))));}
+qi_old_scope(state);
 qi_decl(state, "r", qi_make_list(state, NULL));
+qi_new_scope(state);
 qi_value_t *__qistd160 = qi_iter(state, qi_get(state, "t"));
 qi_decl(state, "k", state->nil);
 for (qi_size_t length = _qi_length(state, __qistd160), i = 0; i < length; i++) {
@@ -992,6 +1131,7 @@ qi_set(state, false, "k", qi_index(state, __qistd160, qi_make_number(state, i)))
 (void)(qi_call(state, qi_get(state, "list_push"), __qistd161(state)));__continue159:;
 }
 __break159:;
+qi_old_scope(state);
 return qi_get(state, "r");
 return state->nil;
 }
@@ -1013,9 +1153,12 @@ return list;
 }
 qi_value_t *__qistd162(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "t", qi_list_index(pargs, 0));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd163(state)), qi_make_string(state, "table")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: table, but got: "), qi_call(state, qi_get(state, "type"), __qistd164(state))));}
+qi_old_scope(state);
 qi_decl(state, "r", qi_make_list(state, NULL));
+qi_new_scope(state);
 qi_value_t *__qistd166 = qi_iter(state, qi_get(state, "t"));
 qi_decl(state, "k", state->nil);
 for (qi_size_t length = _qi_length(state, __qistd166), i = 0; i < length; i++) {
@@ -1023,6 +1166,7 @@ qi_set(state, false, "k", qi_index(state, __qistd166, qi_make_number(state, i)))
 (void)(qi_call(state, qi_get(state, "list_push"), __qistd167(state)));__continue165:;
 }
 __break165:;
+qi_old_scope(state);
 return qi_get(state, "r");
 return state->nil;
 }
@@ -1104,13 +1248,20 @@ return list;
 qi_value_t *__qistd168(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "f", qi_list_index(pargs, 0));
 qi_decl(state, "xs", qi_list_index(pargs, 1));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd169(state)), qi_make_string(state, "function")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: function, but got: "), qi_call(state, qi_get(state, "type"), __qistd170(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_in(state, qi_call(state, qi_get(state, "type"), __qistd171(state)), qi_make_tuple(state, __qistd172(state))))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected second argument to be: list, tuple, string or bytes, but got: "), qi_call(state, qi_get(state, "type"), __qistd173(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "len"), __qistd174(state)), qi_make_number(state, 0)))) {
 qi_throw(state, qi_make_string(state, "cannot reduce empty list"));}
+qi_old_scope(state);
 (void)(qi_set(state, false, "r", qi_index(state, qi_get(state, "xs"), qi_make_number(state, 0))));
+qi_new_scope(state);
 qi_value_t *__qistd176 = qi_iter(state, qi_call(state, qi_get(state, "slice"), __qistd177(state)));
 qi_decl(state, "x", state->nil);
 for (qi_size_t length = _qi_length(state, __qistd176), i = 0; i < length; i++) {
@@ -1118,12 +1269,27 @@ qi_set(state, false, "x", qi_index(state, __qistd176, qi_make_number(state, i)))
 (void)(qi_set(state, false, "r", qi_call(state, qi_get(state, "f"), __qistd178(state))));__continue175:;
 }
 __break175:;
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "type"), __qistd179(state)), qi_make_string(state, "tuple")))) {
+qi_old_scope(state);
 return qi_call(state, qi_get(state, "tuple"), __qistd180(state));} else {
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "type"), __qistd181(state)), qi_make_string(state, "string")))) {
+qi_old_scope(state);
+qi_old_scope(state);
 return qi_call(state, qi_get(state, "list_join"), __qistd182(state));} else {
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "type"), __qistd183(state)), qi_make_string(state, "bytes")))) {
-return qi_call(state, qi_get(state, "bytes"), __qistd184(state));}}}
+qi_old_scope(state);
+qi_old_scope(state);
+qi_old_scope(state);
+return qi_call(state, qi_get(state, "bytes"), __qistd184(state));}
+qi_old_scope(state);
+}
+qi_old_scope(state);
+}
+qi_old_scope(state);
 return qi_get(state, "r");
 return state->nil;
 }
@@ -1234,13 +1400,21 @@ return list;
 qi_value_t *__qistd191(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "f", qi_list_index(pargs, 0));
 qi_decl(state, "xs", qi_list_index(pargs, 1));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd192(state)), qi_make_string(state, "function")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: function, but got: "), qi_call(state, qi_get(state, "type"), __qistd193(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_in(state, qi_call(state, qi_get(state, "type"), __qistd194(state)), qi_make_tuple(state, __qistd195(state))))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected second argument to be: list, tuple, string or bytes, but got: "), qi_call(state, qi_get(state, "type"), __qistd196(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "len"), __qistd197(state)), qi_make_number(state, 0)))) {
+qi_old_scope(state);
 return qi_get(state, "xs");}
+qi_old_scope(state);
 qi_decl(state, "r", qi_make_list(state, NULL));
+qi_new_scope(state);
 qi_value_t *__qistd199 = qi_iter(state, qi_get(state, "xs"));
 qi_decl(state, "x", state->nil);
 for (qi_size_t length = _qi_length(state, __qistd199), i = 0; i < length; i++) {
@@ -1248,12 +1422,27 @@ qi_set(state, false, "x", qi_index(state, __qistd199, qi_make_number(state, i)))
 (void)(qi_call(state, qi_get(state, "list_push"), __qistd200(state)));__continue198:;
 }
 __break198:;
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "type"), __qistd202(state)), qi_make_string(state, "tuple")))) {
+qi_old_scope(state);
 return qi_call(state, qi_get(state, "tuple"), __qistd203(state));} else {
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "type"), __qistd204(state)), qi_make_string(state, "string")))) {
+qi_old_scope(state);
+qi_old_scope(state);
 return qi_call(state, qi_get(state, "list_join"), __qistd205(state));} else {
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "type"), __qistd206(state)), qi_make_string(state, "bytes")))) {
-return qi_call(state, qi_get(state, "bytes"), __qistd207(state));}}}
+qi_old_scope(state);
+qi_old_scope(state);
+qi_old_scope(state);
+return qi_call(state, qi_get(state, "bytes"), __qistd207(state));}
+qi_old_scope(state);
+}
+qi_old_scope(state);
+}
+qi_old_scope(state);
 return qi_get(state, "r");
 return state->nil;
 }
@@ -1334,27 +1523,53 @@ return list;
 qi_value_t *__qistd208(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "f", qi_list_index(pargs, 0));
 qi_decl(state, "xs", qi_list_index(pargs, 1));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd209(state)), qi_make_string(state, "function")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: function, but got: "), qi_call(state, qi_get(state, "type"), __qistd210(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_in(state, qi_call(state, qi_get(state, "type"), __qistd211(state)), qi_make_tuple(state, __qistd212(state))))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected second argument to be: list, tuple, string or bytes, but got: "), qi_call(state, qi_get(state, "type"), __qistd213(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "len"), __qistd214(state)), qi_make_number(state, 0)))) {
+qi_old_scope(state);
 return qi_get(state, "xs");}
+qi_old_scope(state);
 qi_decl(state, "r", qi_make_list(state, NULL));
+qi_new_scope(state);
 qi_value_t *__qistd216 = qi_iter(state, qi_get(state, "xs"));
 qi_decl(state, "x", state->nil);
 for (qi_size_t length = _qi_length(state, __qistd216), i = 0; i < length; i++) {
 qi_set(state, false, "x", qi_index(state, __qistd216, qi_make_number(state, i)));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_call(state, qi_get(state, "f"), __qistd217(state)))) {
-(void)(qi_call(state, qi_get(state, "list_push"), __qistd218(state)));}__continue215:;
+(void)(qi_call(state, qi_get(state, "list_push"), __qistd218(state)));}
+qi_old_scope(state);
+__continue215:;
 }
 __break215:;
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "type"), __qistd219(state)), qi_make_string(state, "tuple")))) {
+qi_old_scope(state);
 return qi_call(state, qi_get(state, "tuple"), __qistd220(state));} else {
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "type"), __qistd221(state)), qi_make_string(state, "string")))) {
+qi_old_scope(state);
+qi_old_scope(state);
 return qi_call(state, qi_get(state, "list_join"), __qistd222(state));} else {
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "type"), __qistd223(state)), qi_make_string(state, "bytes")))) {
-return qi_call(state, qi_get(state, "bytes"), __qistd224(state));}}}
+qi_old_scope(state);
+qi_old_scope(state);
+qi_old_scope(state);
+return qi_call(state, qi_get(state, "bytes"), __qistd224(state));}
+qi_old_scope(state);
+}
+qi_old_scope(state);
+}
+qi_old_scope(state);
 return qi_get(state, "r");
 return state->nil;
 }
@@ -1403,21 +1618,41 @@ return list;
 qi_value_t *__qistd225(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "s", qi_list_index(pargs, 0));
 qi_decl(state, "w", qi_list_index(pargs, 1));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_or(state, qi_equals(state, qi_get(state, "s"), state->empty_string), qi_equals(state, qi_get(state, "w"), state->empty_string)))) {
+qi_old_scope(state);
 return qi_negate(state, qi_make_number(state, 1));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd226(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: string, but got: "), qi_call(state, qi_get(state, "type"), __qistd227(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd228(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected second argument to be: string, but got: "), qi_call(state, qi_get(state, "type"), __qistd229(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 qi_decl(state, "i", qi_make_number(state, 0));
 while (_qi_truthy(state, qi_lt(state, qi_get(state, "i"), qi_call(state, qi_get(state, "len"), __qistd231(state))))) {
+qi_new_scope(state);
 if (_qi_truthy(state, qi_and(state, qi_equals(state, qi_call(state, qi_get(state, "len"), __qistd232(state)), qi_make_number(state, 1)), qi_equals(state, qi_index(state, qi_get(state, "s"), qi_get(state, "i")), qi_get(state, "w"))))) {
+qi_old_scope(state);
+qi_old_scope(state);
 return qi_get(state, "i");} else {
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "slice"), __qistd233(state)), qi_get(state, "w")))) {
-return qi_get(state, "i");}}__continue230:;
+qi_old_scope(state);
+qi_old_scope(state);
+qi_old_scope(state);
+return qi_get(state, "i");}
+qi_old_scope(state);
+}
+qi_old_scope(state);
+__continue230:;
 qi_set(state, false, "i", qi_add(state, qi_get(state, "i"), state->one));
 }
 __break230:;
+qi_old_scope(state);
 return qi_negate(state, qi_make_number(state, 1));
 return state->nil;
 }
@@ -1455,18 +1690,27 @@ return list;
 qi_value_t *__qistd235(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "s", qi_list_index(pargs, 0));
 qi_decl(state, "cs", pargc >= 2? qi_list_index(pargs, 1): qi_make_string(state, " \t\n\r\x0b\x0c"));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd236(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: string, but got: "), qi_call(state, qi_get(state, "type"), __qistd237(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd238(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected second argument to be: string, but got: "), qi_call(state, qi_get(state, "type"), __qistd239(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_get(state, "s"), state->empty_string))) {
+qi_old_scope(state);
 return qi_get(state, "s");}
+qi_old_scope(state);
+qi_new_scope(state);
 qi_decl(state, "i", qi_make_number(state, 0));
 while (_qi_truthy(state, qi_and(state, qi_in(state, qi_index(state, qi_get(state, "s"), qi_get(state, "i")), qi_get(state, "cs")), qi_lt(state, qi_get(state, "i"), qi_call(state, qi_get(state, "len"), __qistd241(state)))))) {
 __continue240:;
 qi_set(state, false, "i", qi_add(state, qi_get(state, "i"), state->one));
 }
 __break240:;
+qi_old_scope(state);
 return qi_call(state, qi_get(state, "slice"), __qistd242(state));
 return state->nil;
 }
@@ -1510,12 +1754,20 @@ return list;
 qi_value_t *__qistd243(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "s", qi_list_index(pargs, 0));
 qi_decl(state, "cs", pargc >= 2? qi_list_index(pargs, 1): qi_make_string(state, " \t\n\r\x0b\x0c"));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd244(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: string, but got: "), qi_call(state, qi_get(state, "type"), __qistd245(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd246(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected second argument to be: string, but got: "), qi_call(state, qi_get(state, "type"), __qistd247(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_get(state, "s"), state->empty_string))) {
+qi_old_scope(state);
 return qi_get(state, "s");}
+qi_old_scope(state);
+qi_new_scope(state);
 qi_decl(state, "i", qi_sub(state, qi_call(state, qi_get(state, "len"), __qistd249(state)), qi_make_number(state, 1)));
 qi_decl(state, "k", qi_make_number(state, 0));
 while (_qi_truthy(state, qi_and(state, qi_in(state, qi_index(state, qi_get(state, "s"), qi_get(state, "i")), qi_get(state, "cs")), qi_ge(state, qi_get(state, "i"), qi_make_number(state, 0))))) {
@@ -1523,6 +1775,7 @@ while (_qi_truthy(state, qi_and(state, qi_in(state, qi_index(state, qi_get(state
 qi_set(state, false, "k", qi_add(state, qi_get(state, "k"), state->one));
 }
 __break248:;
+qi_old_scope(state);
 return qi_call(state, qi_get(state, "slice"), __qistd250(state));
 return state->nil;
 }
@@ -1561,10 +1814,14 @@ return list;
 qi_value_t *__qistd252(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "s", qi_list_index(pargs, 0));
 qi_decl(state, "cs", pargc >= 2? qi_list_index(pargs, 1): qi_make_string(state, " \t\n\r\x0b\x0c"));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd253(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: string, but got: "), qi_call(state, qi_get(state, "type"), __qistd254(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd255(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected second argument to be: string, but got: "), qi_call(state, qi_get(state, "type"), __qistd256(state))));}
+qi_old_scope(state);
 return qi_call(state, qi_get(state, "str_lstrip"), __qistd257(state));
 return state->nil;
 }
@@ -1592,12 +1849,19 @@ qi_value_t *__qistd259(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "d", pargc >= 3? qi_list_index(pargs, 2): qi_get(state, "nil"));
 qi_decl(state, "k", qi_list_index(pargs, 1));
 qi_decl(state, "t", qi_list_index(pargs, 0));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd260(state)), qi_make_string(state, "table")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: table, but got: "), qi_call(state, qi_get(state, "type"), __qistd261(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd262(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected second argument to be: string, but got: "), qi_call(state, qi_get(state, "type"), __qistd263(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_in(state, qi_get(state, "k"), qi_get(state, "t")))) {
+qi_old_scope(state);
 return qi_get(state, "d");}
+qi_old_scope(state);
 return qi_index(state, qi_get(state, "t"), qi_get(state, "k"));
 return state->nil;
 }
@@ -1626,14 +1890,19 @@ qi_list_data(list, 1) = qi_get(state, "t");
 return list;
 }
 qi_value_t *__qistd264(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not(state, qi_get(state, "arguments")))) {
+qi_old_scope(state);
 return qi_make_list(state, NULL);}
+qi_old_scope(state);
 qi_decl(state, "l", qi_call(state, qi_get(state, "map"), __qistd265(state)));
 (void)(qi_set(state, false, "l", qi_call(state, qi_get(state, "reduce"), __qistd266(state))));
 qi_decl(state, "r", qi_make_list(state, NULL));
+qi_new_scope(state);
 qi_decl(state, "i", qi_make_number(state, 0));
 while (_qi_truthy(state, qi_lt(state, qi_get(state, "i"), qi_get(state, "l")))) {
 qi_decl(state, "t", qi_make_list(state, NULL));
+qi_new_scope(state);
 qi_value_t *__qistd269 = qi_iter(state, qi_get(state, "arguments"));
 qi_decl(state, "xs", state->nil);
 for (qi_size_t length = _qi_length(state, __qistd269), i = 0; i < length; i++) {
@@ -1641,11 +1910,13 @@ qi_set(state, false, "xs", qi_index(state, __qistd269, qi_make_number(state, i))
 (void)(qi_call(state, qi_get(state, "list_push"), __qistd270(state)));__continue268:;
 }
 __break268:;
+qi_old_scope(state);
 (void)(qi_call(state, qi_get(state, "list_push"), __qistd271(state)));
 __continue267:;
 qi_set(state, false, "i", qi_add(state, qi_get(state, "i"), state->one));
 }
 __break267:;
+qi_old_scope(state);
 return qi_get(state, "r");
 return state->nil;
 }
@@ -1688,9 +1959,14 @@ return list;
 }
 qi_value_t *__qistd272(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "l", qi_list_index(pargs, 0));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "type"), __qistd273(state)), qi_make_string(state, "table")))) {
+qi_old_scope(state);
 return qi_call(state, qi_get(state, "zip"), __qistd274(state));} else {
-return qi_call(state, qi_get(state, "zip"), __qistd277(state));}return state->nil;
+qi_old_scope(state);
+return qi_call(state, qi_get(state, "zip"), __qistd277(state));}
+qi_old_scope(state);
+return state->nil;
 }
 inline static qi_list_t *__qistd281(qi_state_t *state) {
 qi_list_t *list = qi_list_make_n(1);
@@ -1724,8 +2000,10 @@ return list;
 }
 qi_value_t *__qistd280(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "s", qi_list_index(pargs, 0));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd281(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: string, but got: "), qi_call(state, qi_get(state, "type"), __qistd282(state))));}
+qi_old_scope(state);
 return qi_call(state, qi_get(state, "map"), __qistd283(state));
 return state->nil;
 }
@@ -1761,8 +2039,10 @@ return list;
 }
 qi_value_t *__qistd287(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "s", qi_list_index(pargs, 0));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd288(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: string, but got: "), qi_call(state, qi_get(state, "type"), __qistd289(state))));}
+qi_old_scope(state);
 return qi_call(state, qi_get(state, "map"), __qistd290(state));
 return state->nil;
 }
@@ -1848,6 +2128,7 @@ qi_decl(state, "pargs", qi_list_index(pargs, 1));
 qi_decl(state, "this", qi_list_index(pargs, 0));
 qi_decl(state, "t", qi_make_table(state, NULL));
 qi_decl(state, "mt", qi_make_table(state, NULL));
+qi_new_scope(state);
 qi_value_t *__qistd309 = qi_iter(state, qi_get(state, "p"));
 qi_decl(state, "other", state->nil);
 for (qi_size_t length = _qi_length(state, __qistd309), i = 0; i < length; i++) {
@@ -1858,14 +2139,19 @@ qi_set(state, false, "other", qi_index(state, __qistd309, qi_make_number(state,
 __continue308:;
 }
 __break308:;
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_equals(state, qi_call(state, qi_get(state, "len"), __qistd311(state)), qi_make_number(state, 1)))) {
 (void)(qi_index_set(state, false, qi_get(state, "this"), qi_make_string(state, "super"), qi_index(state, qi_index(state, qi_get(state, "this"), qi_make_string(state, "super")), qi_make_number(state, 0))));}
+qi_old_scope(state);
 (void)(qi_set(state, false, "t", qi_add(state, qi_get(state, "t"), qi_index(state, qi_get(state, "this"), qi_make_string(state, "t")))));
 (void)(qi_set(state, false, "mt", qi_add(state, qi_get(state, "mt"), qi_index(state, qi_get(state, "this"), qi_make_string(state, "mt")))));
 (void)(qi_index_set(state, false, qi_get(state, "t"), qi_make_string(state, "super"), qi_index(state, qi_get(state, "this"), qi_make_string(state, "super"))));
 (void)(qi_set(state, false, "obj", qi_call(state, qi_get(state, "set_meta_table"), __qistd312(state))));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_in(state, qi_make_string(state, "constructor"), qi_get(state, "mt")))) {
 (void)(qi_call(state, qi_get(state, "func_call"), __qistd313(state)));}
+qi_old_scope(state);
 return qi_get(state, "obj");
 return state->nil;
 }
@@ -1924,21 +2210,26 @@ return list;
 }
 qi_value_t *__qistd316(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "s", qi_list_index(pargs, 0));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd317(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: string, but got: "), qi_call(state, qi_get(state, "type"), __qistd318(state))));}
+qi_old_scope(state);
 qi_decl(state, "r", state->empty_string);
 qi_decl(state, "n", qi_make_number(state, 1));
+qi_new_scope(state);
 qi_decl(state, "i", qi_make_number(state, 0));
 while (_qi_truthy(state, qi_lt(state, qi_get(state, "i"), qi_call(state, qi_get(state, "len"), __qistd320(state))))) {
 qi_value_t *__qistd322 = qi_index(state, qi_get(state, "s"), qi_get(state, "i"));
 if (_qi_equals(state, __qistd322, qi_make_string(state, "_"))) goto __qistd323;
 goto __default321;
 __qistd323:;
+qi_new_scope(state);
 if (_qi_truthy(state, qi_and(state, qi_lt(state, qi_add(state, qi_get(state, "i"), qi_make_number(state, 1)), qi_call(state, qi_get(state, "len"), __qistd324(state))), qi_equals(state, qi_index(state, qi_get(state, "s"), qi_add(state, qi_get(state, "i"), qi_make_number(state, 1))), qi_make_string(state, "_"))))) {
 (void)(qi_set(state, false, "r", qi_add(state, qi_get(state, "r"), qi_make_string(state, "_"))));
 (void)(qi_set(state, false, "i", qi_add(state, qi_get(state, "i"), state->one)));
 goto __continue319;
 }
+qi_old_scope(state);
 (void)(qi_set(state, false, "r", qi_add(state, qi_get(state, "r"), qi_call(state, qi_get(state, "repr"), __qistd325(state)))));
 goto __break321;
 __default321:;
@@ -1948,6 +2239,7 @@ __continue319:;
 qi_set(state, false, "i", qi_add(state, qi_get(state, "i"), state->one));
 }
 __break319:;
+qi_old_scope(state);
 return qi_get(state, "r");
 return state->nil;
 }
@@ -1985,10 +2277,14 @@ return list;
 qi_value_t *__qistd326(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "l", qi_list_index(pargs, 1));
 qi_decl(state, "s", qi_list_index(pargs, 0));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd327(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: string, but got: "), qi_call(state, qi_get(state, "type"), __qistd328(state))));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd329(state)), qi_make_string(state, "list")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected second argument to be: list, but got: "), qi_call(state, qi_get(state, "type"), __qistd330(state))));}
+qi_old_scope(state);
 return qi_call(state, qi_get(state, "func_call"), __qistd331(state));
 return state->nil;
 }
@@ -2030,31 +2326,42 @@ return list;
 qi_value_t *__qistd333(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "s", qi_list_index(pargs, 0));
 qi_decl(state, "t", qi_list_index(pargs, 1));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not_equals(state, qi_call(state, qi_get(state, "type"), __qistd334(state)), qi_make_string(state, "string")))) {
 qi_throw(state, qi_add(state, qi_make_string(state, "expected first argument to be: string, but got: "), qi_call(state, qi_get(state, "type"), __qistd335(state))));}
+qi_old_scope(state);
 qi_decl(state, "r", state->empty_string);
 qi_decl(state, "n", qi_make_number(state, 1));
+qi_new_scope(state);
 qi_decl(state, "i", qi_make_number(state, 0));
 while (_qi_truthy(state, qi_lt(state, qi_get(state, "i"), qi_call(state, qi_get(state, "len"), __qistd337(state))))) {
 qi_value_t *__qistd339 = qi_index(state, qi_get(state, "s"), qi_get(state, "i"));
 if (_qi_equals(state, __qistd339, qi_make_string(state, "{"))) goto __qistd340;
 goto __default338;
 __qistd340:;
+qi_new_scope(state);
 if (_qi_truthy(state, qi_and(state, qi_lt(state, qi_add(state, qi_get(state, "i"), qi_make_number(state, 1)), qi_call(state, qi_get(state, "len"), __qistd341(state))), qi_equals(state, qi_index(state, qi_get(state, "s"), qi_add(state, qi_get(state, "i"), qi_make_number(state, 1))), qi_make_string(state, "{"))))) {
 (void)(qi_set(state, false, "r", qi_add(state, qi_get(state, "r"), qi_make_string(state, "{"))));
 (void)(qi_set(state, false, "i", qi_add(state, qi_get(state, "i"), state->one)));
 goto __continue336;
 }
+qi_old_scope(state);
 qi_decl(state, "k", state->empty_string);
 (void)(qi_set(state, false, "i", qi_add(state, qi_get(state, "i"), state->one)));
+qi_new_scope(state);
 while (_qi_truthy(state, qi_and(state, qi_lt(state, qi_get(state, "i"), qi_call(state, qi_get(state, "len"), __qistd343(state))), qi_not_equals(state, qi_index(state, qi_get(state, "s"), qi_get(state, "i")), qi_make_string(state, "}"))))) {
 (void)(qi_set(state, false, "k", qi_add(state, qi_get(state, "k"), qi_index(state, qi_get(state, "s"), qi_set(state, false, "i", qi_add(state, qi_get(state, "i"), state->one))))));__continue342:;
 }
 __break342:;
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_or(state, qi_ge(state, qi_get(state, "i"), qi_call(state, qi_get(state, "len"), __qistd344(state))), qi_not_equals(state, qi_index(state, qi_get(state, "s"), qi_get(state, "i")), qi_make_string(state, "}"))))) {
 qi_throw(state, qi_make_string(state, "unmatched { in format specifier"));}
+qi_old_scope(state);
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not(state, qi_get(state, "k")))) {
 qi_throw(state, qi_make_string(state, "empty format key"));}
+qi_old_scope(state);
 (void)(qi_set(state, false, "r", qi_add(state, qi_get(state, "r"), qi_call(state, qi_get(state, "repr"), __qistd345(state)))));
 goto __break338;
 __default338:;
@@ -2064,6 +2371,7 @@ __continue336:;
 qi_set(state, false, "i", qi_add(state, qi_get(state, "i"), state->one));
 }
 __break336:;
+qi_old_scope(state);
 return qi_get(state, "r");
 return state->nil;
 }
@@ -2117,8 +2425,10 @@ qi_list_data(list, 1) = qi_make_string(state, "\n\r");
 return list;
 }
 qi_value_t *__qistd353(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
+qi_new_scope(state);
 if (_qi_truthy(state, qi_gt(state, qi_call(state, qi_get(state, "len"), __qistd354(state)), qi_make_number(state, 0)))) {
 (void)(qi_call(state, qi_get(state, "func_call"), __qistd355(state)));}
+qi_old_scope(state);
 return qi_call(state, qi_get(state, "str_rstrip"), __qistd356(state));
 return state->nil;
 }
@@ -2136,8 +2446,11 @@ return qi_call(state, qi_get(state, "fopen"), __qistd358(state));return state->n
 qi_value_t *__qistd359(qi_state_t *state, qi_size_t pargc, qi_list_t *pargs) {
 qi_decl(state, "cond", qi_list_index(pargs, 0));
 qi_decl(state, "msg", pargc >= 2? qi_list_index(pargs, 1): qi_make_string(state, "assertion failed"));
+qi_new_scope(state);
 if (_qi_truthy(state, qi_not(state, qi_get(state, "cond")))) {
-qi_throw(state, qi_get(state, "msg"));}return state->nil;
+qi_throw(state, qi_get(state, "msg"));}
+qi_old_scope(state);
+return state->nil;
 }
 inline static qi_list_t *__qistd360(qi_state_t *state) {
 qi_list_t *list = qi_list_make_n(2);