code: function(ctx) {
      assert(this.args.length >= 1);
      var c = this.args[0].evaluate(ctx).numberValue();
      var ret = [];
      for (var i = 0; i < c; ++i) {
        ret.push(ctx.node);
      }
      return new NodeSetValue(ret);
    }
docs: ext-cardinal() evaluates its single argument as a number, and returns the current node that many times. It can be used in the select attribute to iterate over an integer range.