function inspect(obj, opts) {
						// default options
						var ctx = {
							seen: [],
							stylize: stylizeNoColor,
						};
						// legacy...
						if (arguments.length >= 3) ctx.depth = arguments[2];
						if (arguments.length >= 4) ctx.colors = arguments[3];
						if (isBoolean(opts)) {
							// legacy...
							ctx.showHidden = opts;
						} else if (opts) {
							// got an "options" object
							exports._extend(ctx, opts);
						}
						// set default options
						if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
						if (isUndefined(ctx.depth)) ctx.depth = 2;
						if (isUndefined(ctx.colors)) ctx.colors = false;
						if (isUndefined(ctx.customInspect))
							ctx.customInspect = true;
						if (ctx.colors) ctx.stylize = stylizeWithColor;
						return formatValue(ctx, obj, ctx.depth);
					}
Echos the value of a value. Tries to print the value out
in the best way possible given the different types.

@param {Object} obj The object to print out.
@param {Object} opts Optional options object that alters the output.