docs: function() {
          var Module, key, moduleName, modules, value, _i, _len;
          modules = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
          for (_i = 0, _len = modules.length; _i < _len; _i++) {
            Module = modules[_i];
            if (typeof Module.isString === "function" ? Module.isString() : void 0) {
              moduleName = Module;
              Module = Module.constantize();
            } else if (moduleName = Module._name) {} else {
              for (key in root) {
                value = root[key];
                if (value === Module) Module._name = moduleName = key;
              }
            }
            if (moduleName) {
              if (!I.includedModules.include(moduleName)) {
                I.includedModules.push(moduleName);
                self.extend(Module(I, self));
              }
            } else {
              warn("Unable to discover name for module: ", Module, "\nSerialization issues may occur.");
              self.extend(Module(I, self));
            }
          }
          return self;
        }