code: function guardedSeq(condition) {
          var rules = [];
          for (var _i = 1; _i < arguments.length; _i++) {
              rules[_i - 1] = arguments[_i];
          }
          return seq(condition, seq.apply(void 0, rules.map(function (r) { return assert(r); }))).setType("guardedSeq");
      }
docs: If first part of a guarded sequence passes then each subsequent rule must pass as well otherwise an exception occurs. This helps create parsers that fail fast, and thus provide better feedback for badly formed input.