+ Object result;
+ result.type = STRUCTURE;
+ result.value.structure = NULL;
+
+ int32_t count = argument.integer;
+
+ while(count > 0) {
+ assert(!Stack_isEmpty(&(thread->stack)));
+ Object key = Stack_pop(&(thread->stack));
+ assert(key.type == SYMBOL);
+
+ assert(!Stack_isEmpty(&(thread->stack)));
+ Object value = Stack_pop(&(thread->stack));
+
+ Structure* node = malloc(sizeof(Structure));
+ node->key = key.value.string;
+ node->value = value;
+ node->next = result.value.structure;
+
+ result.value.structure = node;
+ count--;
+ }
+
+ Stack_push(&(thread->stack), result);