+var_help = p0;
+var_default = p1;
+var_names = p2;
+{
+var = (val*)(var_default<<2|1);
+opts___opts__Option___init(self, var_help, var, var_names); /* Direct call opts$Option$init on <self:OptionInt>*/
+}
+RET_LABEL:;
+}
+/* method opts$OptionInt$convert for (self: OptionInt, String): Int */
+long opts___opts__OptionInt___OptionParameter__convert(val* self, val* p0) {
+long var /* : Int */;
+val* var_str /* var str: String */;
+short int var1 /* : Bool */;
+long var2 /* : Int */;
+val* var3 /* : Array[String] */;
+val* var5 /* : Array[String] */;
+val* var6 /* : NativeArray[String] */;
+static val* varonce;
+static val* varonce7;
+val* var8 /* : String */;
+char* var9 /* : CString */;
+val* var10 /* : String */;
+val* var11 /* : nullable Int */;
+val* var12 /* : nullable Int */;
+val* var13 /* : nullable Bool */;
+val* var14 /* : nullable Bool */;
+static val* varonce15;
+val* var16 /* : String */;
+char* var17 /* : CString */;
+val* var18 /* : String */;
+val* var19 /* : nullable Int */;
+val* var20 /* : nullable Int */;
+val* var21 /* : nullable Bool */;
+val* var22 /* : nullable Bool */;
+val* var23 /* : Array[String] */;
+val* var25 /* : Array[String] */;
+static val* varonce26;
+val* var27 /* : String */;
+char* var28 /* : CString */;
+val* var29 /* : String */;
+val* var30 /* : nullable Int */;
+val* var31 /* : nullable Int */;
+val* var32 /* : nullable Bool */;
+val* var33 /* : nullable Bool */;
+val* var34 /* : String */;
+val* var35 /* : String */;
+var_str = p0;
+{
+var1 = core__fixed_ints_text___Text___is_int(var_str);
+}
+if (var1){
+{
+var2 = core__fixed_ints_text___Text___to_i(var_str);
+}
+var = var2;
+goto RET_LABEL;
+} else {
+}
+{
+{ /* Inline opts$Option$errors (self) on <self:OptionInt> */
+var5 = self->attrs[COLOR_opts__Option___errors].val; /* _errors on <self:OptionInt> */
+if (unlikely(var5 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _errors");
+PRINT_ERROR(" (%s:%d)\n", FILE_opts, 28);
+fatal_exit(1);
+}
+var3 = var5;
+RET_LABEL4:(void)0;
+}
+}
+if (unlikely(varonce==NULL)) {
+var6 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
+if (likely(varonce7!=NULL)) {
+var8 = varonce7;
+} else {
+var9 = "Expected an integer for option ";
+var11 = (val*)(31l<<2|1);
+var12 = (val*)(31l<<2|1);
+var13 = (val*)((long)(0)<<2|3);
+var14 = (val*)((long)(0)<<2|3);
+var10 = core__flat___CString___to_s_unsafe(var9, var11, var12, var13, var14);
+var8 = var10;
+varonce7 = var8;
+}
+((struct instance_core__NativeArray*)var6)->values[0]=var8;
+if (likely(varonce15!=NULL)) {
+var16 = varonce15;
+} else {
+var17 = ".";
+var19 = (val*)(1l<<2|1);
+var20 = (val*)(1l<<2|1);
+var21 = (val*)((long)(0)<<2|3);
+var22 = (val*)((long)(0)<<2|3);
+var18 = core__flat___CString___to_s_unsafe(var17, var19, var20, var21, var22);
+var16 = var18;
+varonce15 = var16;
+}
+((struct instance_core__NativeArray*)var6)->values[2]=var16;
+} else {
+var6 = varonce;
+varonce = NULL;
+}
+{
+{ /* Inline opts$Option$names (self) on <self:OptionInt> */
+var25 = self->attrs[COLOR_opts__Option___names].val; /* _names on <self:OptionInt> */
+if (unlikely(var25 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
+PRINT_ERROR(" (%s:%d)\n", FILE_opts, 19);
+fatal_exit(1);
+}
+var23 = var25;
+RET_LABEL24:(void)0;
+}
+}
+if (likely(varonce26!=NULL)) {
+var27 = varonce26;
+} else {
+var28 = ", ";
+var30 = (val*)(2l<<2|1);
+var31 = (val*)(2l<<2|1);
+var32 = (val*)((long)(0)<<2|3);
+var33 = (val*)((long)(0)<<2|3);
+var29 = core__flat___CString___to_s_unsafe(var28, var30, var31, var32, var33);
+var27 = var29;
+varonce26 = var27;
+}
+{
+var34 = core__abstract_text___Collection___join(var23, var27, ((val*)NULL));
+}
+((struct instance_core__NativeArray*)var6)->values[1]=var34;
+{
+var35 = ((val*(*)(val* self))(var6->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var6); /* native_to_s on <var6:NativeArray[String]>*/
+}
+varonce = var6;
+{
+core___core__Array___core__abstract_collection__SimpleCollection__add(var3, var35); /* Direct call array$Array$add on <var3:Array[String]>*/
+}
+var = 0l;
+goto RET_LABEL;