Fix bugs found in testing
diff --git a/include/instructions.h b/include/instructions.h
index db5a921..1da3ffc 100644
--- a/include/instructions.h
+++ b/include/instructions.h
@@ -100,6 +100,7 @@
 #define BC_INST_OP_REL_EQUAL ((uint8_t) '=')
 #define BC_INST_OP_REL_LESS_EQ ((uint8_t) ';')
 #define BC_INST_OP_REL_GREATER_EQ ((uint8_t) '?')
+#define BC_INST_OP_REL_NOT_EQ ((uint8_t) '~')
 #define BC_INST_OP_REL_LESS ((uint8_t) '<')
 #define BC_INST_OP_REL_GREATER ((uint8_t) '>')
 
@@ -113,7 +114,7 @@
 #define BC_INST_OP_ASSIGN_POWER ((uint8_t) '`')
 #define BC_INST_OP_ASSIGN_MULTIPLY ((uint8_t) '{')
 #define BC_INST_OP_ASSIGN_DIVIDE ((uint8_t) '}')
-#define BC_INST_OP_ASSIGN_MODULUS ((uint8_t) '~')
+#define BC_INST_OP_ASSIGN_MODULUS ((uint8_t) '@')
 #define BC_INST_OP_ASSIGN_PLUS ((uint8_t) '[')
 #define BC_INST_OP_ASSIGN_MINUS ((uint8_t) ']')
 #define BC_INST_OP_ASSIGN ((uint8_t) ',')
diff --git a/src/bc/parse.c b/src/bc/parse.c
index 60b521e..6a66434 100644
--- a/src/bc/parse.c
+++ b/src/bc/parse.c
@@ -197,6 +197,7 @@
   BC_INST_OP_REL_EQUAL,
   BC_INST_OP_REL_LESS_EQ,
   BC_INST_OP_REL_GREATER_EQ,
+  BC_INST_OP_REL_NOT_EQ,
   BC_INST_OP_REL_LESS,
   BC_INST_OP_REL_GREATER,
 
diff --git a/src/bc/program.c b/src/bc/program.c
index 9534f54..5feec75 100644
--- a/src/bc/program.c
+++ b/src/bc/program.c
@@ -297,7 +297,7 @@
     goto const_err;
   }
 
-  s = bc_vec_init(&p->expr_stack, sizeof(BcNum), bc_result_free);
+  s = bc_vec_init(&p->expr_stack, sizeof(BcResult), bc_result_free);
 
   if (s) {
     goto expr_err;