code: function( obj, type, stack ) {
                      stack = stack || [];
                      var inStack, res,
                          parser = this.parsers[ type || this.typeOf( obj ) ];
  
                      type = typeof parser;
                      inStack = inArray( obj, stack );
  
                      if ( inStack !== -1 ) {
                          return "recursion(" + ( inStack - stack.length ) + ")";
                      }
                      if ( type === "function" ) {
                          stack.push( obj );
                          res = parser.call( this, obj, stack );
                          stack.pop();
                          return res;
                      }
                      return ( type === "string" ) ? parser : this.parsers.error;
                  }
docs: type is used mostly internally, you can fix a (custom)type in advance