+/** args = single "," args | single */
+let args1 = (x) => {
+ var ret = thenDo(thenDo(thenDo(toSome(x), single), tComma), args);
+ if (ret._tag == "Some") {
+ let retLength = ret.value.ast.length;
+ ret.value.ast = [[ret.value.ast[retLength - 3]].concat(ret.value.ast[retLength - 1])];
+ console.log("$$" + repr(ret.value.ast));
+ }
+ return ret;
+};
+let args2 = single;
+let args = orDo(args1, args2);