docs: function() {
      var aP, aI, aT;
      
      aP = arguments[0];
      for(aI=1; aI<arguments.length; aI++) {
        var a=arguments[aI];
  
        // Determine a and aP equal
        var t = this.objectType(aP);
        if(t != this.objectType(a)) return false;
  
        if(t == "array") {
          if(a.length != aP.length) return false;
          for(var i=0; i<a.length; i++) {
            if(!this.eq(a[i], aP[i])) return false;
          }
        }
        else if(t == "object") {
          if(Object.keys(a).length != Object.keys(aP).length) return false;
          for(var k in a) {
            if(!this.eq(a[k], aP[k])) return false;
          }
        }
        else if(a != aP) {
          return false;
        }
        
        aP = a;
      }
      return true;
    }