docs: function periodCompare() {
    var args = mlutil.asArray.apply(null, arguments);
    var argLen = args.length;
  
    var compareAxis1    = null;
    var compareOperator = null;
    var compareAxis2    = null;
    var temporalOptions = null;
    var arg = null;
    for (var i=0; i < argLen; i++) {
      arg = args[i];
      if (typeof arg === 'string' || arg instanceof String) {
        if (compareAxis1 === null) {
          compareAxis1 = arg;
          continue;
        }
        if (compareOperator === null) {
          compareOperator = arg;
          continue;
        }
        if (compareAxis2 === null) {
          compareAxis2 = arg;
          continue;
        }
      }
      if (temporalOptions === null && arg instanceof TemporalOptionsDef) {
        temporalOptions = arg['temporal-option'];
        continue;
      }
      throw new Error('unknown period compare argument: '+mlutil.identify(arg, true));
    }
  
    return new PeriodCompareDef(new PeriodCompareQueryDef(
        compareAxis1, compareOperator, compareAxis2, temporalOptions
    ));
  }